...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::program_options::abstract_variables_map
// In header: <boost/program_options/variables_map.hpp> class abstract_variables_map { public: // construct/copy/destruct abstract_variables_map(); abstract_variables_map(const abstract_variables_map *); ~abstract_variables_map(); // public member functions const variable_value & operator[](const std::string &) const; void next(abstract_variables_map *); // private member functions const variable_value & get(const std::string &) const; };
Implements string->string mapping with convenient value casting facilities.
abstract_variables_map
public
construct/copy/destructabstract_variables_map();
abstract_variables_map(const abstract_variables_map * next);
~abstract_variables_map();
abstract_variables_map
public member functionsconst variable_value & operator[](const std::string & name) const;
Obtains the value of variable 'name', from *this and possibly from the chain of variable maps.
if there's no value in *this.
if there's next variable map, returns value from it
otherwise, returns empty value
if there's defaulted value
if there's next varaible map, which has a non-defauled value, return that
otherwise, return value from *this
if there's a non-defauled value, returns it.
void next(abstract_variables_map * next);
Sets next variable map, which will be used to find variables not found in *this.
abstract_variables_map
private member functionsconst variable_value & get(const std::string & name) const;
Returns value of variable 'name' stored in *this, or empty value otherwise.