Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class option_description

boost::program_options::option_description

Synopsis

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


class option_description {
public:

  enum match_result { no_match, full_match, approximate_match };
  // construct/copy/destruct
  ();
  (, value_semantic *);
  (, value_semantic *, );
  ~();

  // public member functions
   (, , , ) ;
   () ;
   ( = ) ;
   () ;
   () ;
   () ;
  value_semantic > () ;
   () ;
   () ;

  // private member functions
  option_description & ();
};

Description

Describes one possible command line/config file option. There are two kinds of properties of an option. First describe it syntactically and are used only to validate input. Second affect interpretation of the option, for example default value for it or function that should be called when the value is finally known. Routines which perform parsing never use second kind of properties -- they are side effect free.

See Also:

options_description

option_description public construct/copy/destruct

  1. ();
  2. ( name, value_semantic * s);

    Initializes the object with the passed data.

    Note: it would be nice to make the second parameter auto_ptr, to explicitly pass ownership. Unfortunately, it's often needed to create objects of types derived from 'value_semantic': options_description d; d.add_options()("a", parameter<int>("n")->default_value(1)); Here, the static type returned by 'parameter' should be derived from value_semantic.

    Alas, derived->base conversion for auto_ptr does not really work, see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2000/n1232.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#84

    So, we have to use plain old pointers. Besides, users are not expected to use the constructor directly.

    The 'name' parameter is interpreted by the following rules:

    • if there's no "," character in 'name', it specifies long name

    • otherwise, the part before "," specifies long name and the part after -- short name.

  3. ( name, value_semantic * s, 
                        description);

    Initializes the class with the passed data.

  4. ~();

option_description public member functions

  1.  
    ( option,  approx,  long_ignore_case, 
           short_ignore_case) ;

    Given 'option', specified in the input source, returns 'true' if 'option' specifies *this.

  2.  ( option) ;

    Returns the key that should identify the option, in particular in the variables_map class. The 'option' parameter is the option spelling from the input source. If option name contains '*', returns 'option'. If long name was specified, it's the long name, otherwise it's a short name with prepended '-'.

  3.  ( canonical_option_style = ) ;

    Returns the canonical name for the option description to enable the user to recognised a matching option. 1) For short options ('-', '/'), returns the short name prefixed. 2) For long options ('–' / '-') returns the first long name prefixed 3) All other cases, returns the first long name (if present) or the short name, unprefixed.

  4.  () ;
  5.  () ;
  6.  () ;
    Explanation of this option.
  7. value_semantic > () ;
    Semantic of option's value.
  8.  () ;
    Returns the option name, formatted suitably for usage message.
  9.  () ;

    Returns the parameter name and properties, formatted suitably for usage message.

option_description private member functions


PrevUpHomeNext