【发布时间】:2018-06-14 20:41:27
【问题描述】:
是否可以从 text_oarchive 转换为 xml_oarchive?
【问题讨论】:
标签: serialization boost deserialization
是否可以从 text_oarchive 转换为 xml_oarchive?
【问题讨论】:
标签: serialization boost deserialization
仅当序列化支持 XML 档案时。在这种情况下,请使用text_iarchive 读取您的存档并序列化回xml_oarchive。
XML 归档的主要要求是所有对象都被命名,所以:
boost::archive::text_oarchive oa(std::cout);
std::string name = "sample";
oa & name;
需要
boost::archive::xml_oarchive oa(std::cout);
std::string name = "sample";
oa & BOOST_SERIALIZATION_NVP(name);
另见https://www.boost.org/doc/libs/1_67_0/libs/serialization/doc/wrappers.html#nvp
【讨论】: