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


Class positional_options_description



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

class positional_options_description {
  // construct/copy/destruct

  // public member functions
  positional_options_description & add(const char *, int);
  unsigned max_total_count() const;
  const std::string & name_for_position(unsigned) const;


Describes positional options.

The class allows to guess option names for positional options, which are specified on the command line and are identified by the position. The class uses the information provided by the user to associate a name with every positional option, or tell that no name is known.

The primary assumption is that only the relative order of the positional options themselves matters, and that any interleaving ordinary options don't affect interpretation of positional options.

The user initializes the class by specifying that first N positional options should be given the name X1, following M options should be given the name X2 and so on.

positional_options_description public construct/copy/destruct

  1. positional_options_description();

positional_options_description public member functions

  1. positional_options_description & add(const char * name, int max_count);

    Species that up to 'max_count' next positional options should be given the 'name'. The value of '-1' means 'unlimited'. No calls to 'add' can be made after call with 'max_value' equal to '-1'.

  2. unsigned max_total_count() const;

    Returns the maximum number of positional options that can be present. Can return (numeric_limits<unsigned>::max)() to indicate unlimited number.

  3. const std::string & name_for_position(unsigned position) const;

    Returns the name that should be associated with positional options at 'position'. Precondition: position < max_total_count()