我目前有一个头文件,其中包含20多个定义。这些定义设置各种对象的属性。现在我必须将这些定义移动到配置文件中,以便在其中一个值发生更改时不必重建整个项目。我目前正在考虑有一个静态类,其静态属性是从配置文本文件中读取而设置的。还有更好的方法吗?我知道我将不得不编写一个全文解析器,它将检查文本文件中的键值,然后填充值。还有其他方法吗?检索地图价值对的建议?
答案 0 :(得分:2)
如果您使用的是Windows,那么ini文件和GetPrivateProfileString会很快而且很脏。
答案 1 :(得分:2)
如果您只是通过最小化重新编译来加速构建,则不需要编写自己的解析器。您可以用C ++编写配置。
将参数声明放在包含文件中。
/* config.hpp */
class config
{
public:
static const int PARAM1;
static const std::string PARAM2;
static const double PARAM3;
};
在需要更改配置时编辑并重新编译以下C ++文件。
/* config.cpp */
const int config::PARAM1 = 1234;
const std::string config::PARAM2 = "hello";
const double config::PARAM3 = sin(M_PI/4);