读取配置属性的简单方法
a simple way to read configuration properties
我正在尝试为现有的代码/项目添加一些可配置的属性。我发现有这么多步骤来做这件事真的很烦人:
- 向配置文件添加条目
- 在h文件中声明一个密钥字符串
- 在cpp文件中定义该密钥字符串
- 在h文件中声明一个getXXX方法/函数
- 在cpp文件中定义getXXX方法/函数
在我们的例子中,头文件和cpp文件只用于从文本文件中读取的属性,这些属性只在这个模块中需要。因此,我们可以用更少的文件或更少的步骤来简化它们。有什么想法/建议吗?
编辑:
地图用于保存文本文件中的内容。
示例获取方法如下:
unsigned int Module1Config::getSleepTime()
{
return getPropertyMap().getUnsignedIntProperty(SLEEP_TIME_KEY);
}
如果一个私有std::map
的密钥只是配置文件中声明的密钥,该怎么办。然后,您可以有一个getter函数,根据需要键入值,如果不存在,则使用默认值:
template<class T>
T get(const std::string &key) const
{
if the key is in the map,
return its value converted to type T
else
return T();
}
如果声明了某个密钥,您可能会发现第二个函数告诉您有用:
bool exists(const std::string &key) const
{
return true iif key is in the map
}
这种方法的优点是,添加新属性时不需要修改类。缺点是密钥名称不是作为h文件中的常量标识符创建的,因此您必须始终使用字符串,这可能很容易出错。无论如何,我认为它的多功能性是值得的(这是我在程序中使用的方法)。
相关文章:
- 一种在C++中读取TXT配置文件的简单方法
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 将时间戳打印到流的最简单方法
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- C++ 将静态方法转换为简单方法
- 将一系列数字映射到 CPP 中的值的简单方法
- 引用基类模板的成员变量的简单方法
- 学习数据结构和算法的简单方法
- boost::variant - 对变体应用算术的最简单方法
- 创建可以遍历 std::map 值的通用模板迭代器的最简单方法是什么?
- 在C++中将算术类型转换为 std::array 的最简单方法<uint8_t>
- 使用新运算符C++创建多维数组的简单方法
- C++-将ASCII字符数组中可能的数值转换为字符的最简单方法
- OpenSSL模块化最大数据类型大小的简单方法
- 获取当前按键的简单方法
- 多个 if-else 测试的更简单方法
- 为具有多个参数的函数创建 SWIG 类型图的更简单方法?