c ++持久化数据

Ste*_*ve 6 c++ templates

我想要存档的是一些简单的方法来使一些变量持久化.为此,我写了一个PeristenceProvider类,它包含boost属性树功能,用于在xml/ini文件中存储数据.

目前我需要做这样的事情:

ClassA::ClassA()
{
   m_valueI = PersistenceProvider::getInstance.get<int>("valueI");
}

ClassA::~ClassA()
{
    PeristenceProvider::getInstance.set<int>("valueI", m_valueI);
}
Run Code Online (Sandbox Code Playgroud)

但是有机会以这样的方式隐藏它:

class ClassA
{
     Persist<int, "valueI"> m_ValueI;
}
Run Code Online (Sandbox Code Playgroud)

Ano*_*ail 0

听起来您并没有保留大量信息 - 只是一些选择参数。如果是这样,那么只需将函数调用包装在您自己的函数中,该函数采用两个参数 - std::string 或 const char * 以及要保留的项目的类型。如果持久化的类型数量有限(例如 int、double、std::string),那么这将工作得很好。