Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Class template basic_command_line_parser



// In header: <boost/program_options/parsers.hpp>

template<typename charT> 
class basic_command_line_parser {
  // construct/copy/destruct
  basic_command_line_parser(const std::vector< std::basic_string< charT > > &);
  basic_command_line_parser(int, charT *);

  // 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 -- a regular function with 5 parameters will be hard to use and creating overloads with a smaller nuber of parameters will be confusing.

For the most common case, the function parse_command_line is a better alternative.

There are two typedefs -- command_line_parser and wcommand_line_parser, for charT == char and charT == wchar_t cases.

basic_command_line_parser public construct/copy/destruct

  1. basic_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.

  2. basic_command_line_parser(int argc, charT * 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 functions

  1. basic_command_line_parser & options(const options_description & desc) ;

    Sets options descriptions to use.

  2. basic_command_line_parser & 
    positional(const positional_options_description & desc) ;

    Sets positional options description to use.

  3. basic_command_line_parser & style(int) ;

    Sets the command line style.

  4. basic_command_line_parser & extra_parser(ext_parser) ;

    Sets the extra parsers.

  5. basic_parsed_options< charT > run() ;

    Parses the options and returns the result of parsing. Throws on error.

  6. 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<charT> will be added to result, with 'unrecognized' field set to 'true'. It's possible to collect all unrecognized options with the 'collect_unrecognized' funciton.

  7. basic_command_line_parser & extra_style_parser(style_parser s) ;