// This code was generated by CLI, a command line interface // compiler for C++. // #ifndef CLI_OPTIONS_HXX #define CLI_OPTIONS_HXX #include #include #include namespace cli { class unknown_mode { public: enum value { skip, stop, fail }; unknown_mode (value v); operator value () const { return v_; } private: value v_; }; // Exceptions. // class exception: public std::exception { public: virtual void print (std::ostream&) const = 0; }; std::ostream& operator<< (std::ostream&, const exception&); class unknown_option: public exception { public: virtual ~unknown_option () throw (); unknown_option (const std::string& option); const std::string& option () const; virtual void print (std::ostream&) const; virtual const char* what () const throw (); private: std::string option_; }; class unknown_argument: public exception { public: virtual ~unknown_argument () throw (); unknown_argument (const std::string& argument); const std::string& argument () const; virtual void print (std::ostream&) const; virtual const char* what () const throw (); private: std::string argument_; }; class missing_value: public exception { public: virtual ~missing_value () throw (); missing_value (const std::string& option); const std::string& option () const; virtual void print (std::ostream&) const; virtual const char* what () const throw (); private: std::string option_; }; class invalid_value: public exception { public: virtual ~invalid_value () throw (); invalid_value (const std::string& option, const std::string& value); const std::string& option () const; const std::string& value () const; virtual void print (std::ostream&) const; virtual const char* what () const throw (); private: std::string option_; std::string value_; }; } #include #include #include class options { public: options (int argc, char** argv, ::cli::unknown_mode option = ::cli::unknown_mode::fail, ::cli::unknown_mode argument = ::cli::unknown_mode::stop); options (int start, int argc, char** argv, ::cli::unknown_mode option = ::cli::unknown_mode::fail, ::cli::unknown_mode argument = ::cli::unknown_mode::stop); options (int argc, char** argv, int& end, ::cli::unknown_mode option = ::cli::unknown_mode::fail, ::cli::unknown_mode argument = ::cli::unknown_mode::stop); options (int start, int argc, char** argv, int& end, ::cli::unknown_mode option = ::cli::unknown_mode::fail, ::cli::unknown_mode argument = ::cli::unknown_mode::stop); // Option accessors. // public: bool const& help () const; bool const& version () const; std::string const& output_dir () const; bool const& suppress_inline () const; std::string const& hxx_suffix () const; std::string const& ixx_suffix () const; std::string const& cxx_suffix () const; std::string const& option_prefix () const; std::string const& option_separator () const; bool const& include_with_brackets () const; std::string const& include_prefix () const; std::string const& guard_prefix () const; std::map const& reserved_name () const; private: int _parse (int start, int argc, char** argv, ::cli::unknown_mode option, ::cli::unknown_mode argument); public: bool help_; bool version_; std::string output_dir_; bool suppress_inline_; std::string hxx_suffix_; std::string ixx_suffix_; std::string cxx_suffix_; std::string option_prefix_; std::string option_separator_; bool include_with_brackets_; std::string include_prefix_; std::string guard_prefix_; std::map reserved_name_; }; #include "options.ixx" #endif // CLI_OPTIONS_HXX