#ifndef OPTIONS_H #define OPTIONS_H //DUPLICATES NOT HANDLED: takes last one //NO ORDER: no way to know options order //RETURNS TRANSITIONAL STATE IF ERROR #include #include #include std::vector argVector(int argc, char** argv); class Option { public: Option(); Option(char c, bool arg); Option(std::string const& str, bool arg); Option(char c, std::string const& str, bool arg); virtual ~Option(); bool shortDef; char charName; bool longDef; std::string strName; bool activated; bool takesArgument; std::string argument; }; class OptionSet { public: OptionSet(); virtual ~OptionSet(); void addOption(Option opt) { m_options.push_back(opt); } Option* findOption(char c); Option* findOption(std::string const& str); std::ostream* errStream; std::pair,bool> getOptions(std::vector input); private: std::vector