Boost C++ 库
...这是世界上最受推崇、设计最精良的 C++ 库项目之一。
— Herb Sutter 和 Andrei Alexandrescu, C++ Coding Standards
boost::program_options::abstract_variables_map
// In header: <boost/program_options/variables_map.hpp> class abstract_variables_map { public: // public member functions abstract_variables_map(); abstract_variables_map(const abstract_variables_map *); virtual ~abstract_variables_map(); const variable_value & operator[](const std::string &) const; void next(abstract_variables_map *); // private member functions virtual const variable_value & get(const std::string &) const = 0; };
实现 string->string 映射,并提供便捷的值转换功能。
abstract_variables_map 公有成员函数abstract_variables_map();
abstract_variables_map(const abstract_variables_map * next);
virtual ~abstract_variables_map();
const variable_value & operator[](const std::string & name) const;
获取变量 'name' 的值,优先从 *this 获取,如果 *this 中不存在,则可能从变量映射链中获取。
如果 *this 中没有值。
如果存在下一个变量映射,则从中返回值。
否则,返回空值。
如果存在默认值。
如果存在下一个变量映射,并且该映射中有一个非默认值,则返回该值。
否则,返回 *this 中的值。
如果存在非默认值,则返回该值。
void next(abstract_variables_map * next);
设置下一个变量映射,当在 *this 中找不到变量时,将使用该映射来查找变量。
abstract_variables_map 私有成员函数virtual const variable_value & get(const std::string & name) const = 0;
返回存储在 *this 中的变量 'name' 的值,否则返回空值。