使用boost序列化记录存档

时间:2013-12-05 19:58:22

标签: c++ serialization boost

我正在开发一个使用boost :: serialization来使用text_i / oarchive序列化很多东西的软件。

我想构建一个日志存档以进行调试,因为文本存档的输出确实很难阅读。

我已尝试使用示例中的simple_log_archive:http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/simple_log.html但如上所述,它缺少一些功能:“在给定指向多态基类的指针的情况下,它不会显示派生类型的数据”,但是正是我需要的......

还有另一个例子,log_archive:http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/derivation.html这似乎也是一个很好的起点,它应该适用于多态类型并由此判断:

template<class T>
void save_override(T & t, BOOST_PFTO int){
    // make it a name-value pair and pass it on.
    // this permits this to be used even with data types which
    // are not wrapped with the name
    base::save_override(boost::serialization::make_nvp(NULL, t), 0);
}

我认为我可以放心地认为它适用于非nvp成员

它继承自boost::archive::xml_oarchive_impl,因此包含<boost/archive/xml_oarchive.hpp>。但这样做会导致大量错误,因为它试图在xml_oarchive上注册非nvp成员......

我一直在谷歌搜索并试图在过去几个小时找到解决方案,所以也许你们中的一些人已经做过或者知道如何修复simple_log_archive以使用多态类型或log_archive以避免抱怨非nvp成员。

0 个答案:

没有答案