我一直在考虑使用The Right Way (R)
来存储程序的内部配置。
详细信息如下:
我对此的疑问:
具有访问器和 setter 的类
带有内部
std::map
自定义变量的好选择? 这样吗?
整数, bool(boolean) 值和字符串
配置变量?
在用户和内置之间
(已经存在,因为我已经
想到了)变量?
谢谢!
PS:如果问题不清楚,请随时询问更多信息。
更新:哇,每个答案似乎都隐式或显式地使用了boost。我应该提到我想避免增强(我现在想探索标准库的功能)。
最佳答案
您可能做得比某种类型的属性映射更糟(StringMap
只是一个typedef的std::map)
class PropertyMap
{
private:
StringMap m_Map;
public:
PropertyMap() { };
~PropertyMap() { };
// properties
template<class T>
T get(const String& _key, const T& _default = T()) const
{
StringMap_cit cit(m_Map.find(_key));
return (cit != m_Map.end()) ? boost::lexical_cast<T>(cit->second) : _default;
}; // eo get
// methods
void set(const String& _cap, const String& _value)
{
m_Map[_cap] = _value;
}; // eo set
template<class T>
void set(const String& _key, const T& _val)
{
set(_key, boost::lexical_cast<String>(_val));
}; // eo set
};