提升序列化:从text_oarchive到xml_oarchive

时间:2018-06-14 20:41:27

标签: serialization boost deserialization

是否可以从text_oarchive转换为xml_oarchive?

1 个答案:

答案 0 :(得分:0)

仅当序列化支持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