【发布时间】:2013-02-11 09:48:41
【问题描述】:
我正在使用 boost 进行序列化:
bool saveParams(std::string filename)
{
using boost::serialization::make_nvp;
std::ofstream ofs(filename.c_str());
if(ofs.is_open() == false) return false;
boost::archive::xml_oarchive xml(ofs);
xml << make_nvp("Param1", param1value);
xml << make_nvp("Param2", param2value);
xml << make_nvp("Param3", param3value);
xml << make_nvp("Param4", param4value);
}
加载完成:
bool loadParams(std::string filename)
{
using boost::serialization::make_nvp;
std::ifstream ifs(filename.c_str());
if(ifs.is_open() == false) return false;
boost::archive::xml_iarchive xml(ifs);
xml >> BOOST_SERIALIZATION_NVP(param1value);
xml >> BOOST_SERIALIZATION_NVP(param2value);
xml >> BOOST_SERIALIZATION_NVP(param3value);
xml >> BOOST_SERIALIZATION_NVP(param4value);
}
现在我想添加 Param5。 如何在加载时添加额外的版本信息并处理它?我在文档中找到了如何在使用BOOST_CLASS_VERSION(serialized_class, version) 序列化类时执行此操作。
【问题讨论】:
标签: c++ serialization boost boost-serialization