...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::program_options::basic_command_line_parser
// In header: <boost/program_options/parsers.hpp> template<typename charT> class basic_command_line_parser : private cmdline { public: // construct/copy/destruct basic_command_line_parser(const std::vector< std::basic_string< charT > > &); basic_command_line_parser(int, const charT *const); // public member functions basic_command_line_parser & options(const options_description &); basic_command_line_parser & positional(const positional_options_description &); basic_command_line_parser & style(int); basic_command_line_parser & extra_parser(ext_parser); basic_parsed_options< charT > run(); basic_command_line_parser & allow_unregistered(); basic_command_line_parser & extra_style_parser(style_parser); };
Command line parser.
The class allows one to specify all the information needed for parsing and to parse the command line. It is primarily needed to emulate named function parameters
For the most common case, the function parse_command_line is a better alternative.
There are two typedefs
basic_command_line_parser
public
construct/copy/destructbasic_command_line_parser(const std::vector< std::basic_string< charT > > & args);
Creates a command line parser for the specified arguments list. The 'args' parameter should not include program name.
basic_command_line_parser(int argc, const charT *const argv);
Creates a command line parser for the specified arguments list. The parameters should be the same as passed to 'main'.
basic_command_line_parser
public member functionsbasic_command_line_parser & options(const options_description & desc);
Sets options descriptions to use.
basic_command_line_parser & positional(const positional_options_description & desc);
Sets positional options description to use.
basic_command_line_parser & style(int);
Sets the command line style.
basic_command_line_parser & extra_parser(ext_parser);
Sets the extra parsers.
basic_parsed_options< charT > run();
Parses the options and returns the result of parsing. Throws on error.
basic_command_line_parser & allow_unregistered();
Specifies that unregistered options are allowed and should be passed though. For each command like token that looks like an option but does not contain a recognized name, an instance of basic_option
basic_command_line_parser & extra_style_parser(style_parser s);