| Home | Libraries | People | FAQ | More

## Class template basic_command_line_parser

boost::program_options::basic_command_line_parser

## Synopsis

    // 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);
    };

## Description

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 number 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, 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 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);