| Home | Libraries | People | FAQ | More

## Class variable_value

boost::program_options::variable_value

## Synopsis

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

    class variable_value {
    public:
      // construct/copy/destruct
      variable_value();
      variable_value(const boost::any &, bool);

      // public member functions
      template<typename T> const T & as() const;
      template<typename T> T & as();
      bool empty() const;
      bool defaulted() const;
      const boost::any & value() const;
      boost::any & value();

      // friend functions
      friend BOOST_PROGRAM_OPTIONS_DECL void
      store(const basic_parsed_options< char > &, variables_map &, bool);
    };

## Description

Class holding value of option. Contains details about how the value is set and allows to conveniently obtain the value.

### `variable_value` public construct/copy/destruct

1.     variable_value();

2.     variable_value(const boost::any & xv, bool xdefaulted);

### `variable_value` public member functions

1.     template<typename T> const T & as() const;

   If stored value if of type T, returns that value. Otherwise, throws boost::bad_any_cast exception.

2.     template<typename T> T & as();

   This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

3.     bool empty() const;

   Returns true if no value is stored.

4.     bool defaulted() const;

   Returns true if the value was not explicitly given, but has default value.

5.     const boost::any & value() const;

   Returns the contained value.

6.     boost::any & value();

   Returns the contained value.

### `variable_value` friend functions

1.     friend BOOST_PROGRAM_OPTIONS_DECL void
       store(const basic_parsed_options< char > & options, variables_map & m, bool);

   Stores in 'm' all options that are defined in 'options'. If 'm' already has a non-defaulted value of an option, that value is not changed, even if 'options' specify some value.