C++ 使用boost序列化记录归档

C++ 使用boost序列化记录归档,c++,serialization,boost,C++,Serialization,Boost,我正在开发一个软件,它使用boost::serialization来使用text\u I/oarchive序列化很多东西 我想构建一个日志归档以进行调试,因为文本归档的输出确实很难读取 我尝试过使用示例中的simple_log_archive:但如上所述,它缺少一些功能:给定指向多态基类的指针,它不会显示派生类型中的数据,但这正是我需要的 还有另一个例子,log_archive:这似乎也是一个很好的起点,它应该与多态类型一起工作,从以下几点判断: template<class T>

我正在开发一个软件,它使用boost::serialization来使用text\u I/oarchive序列化很多东西

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

我尝试过使用示例中的simple_log_archive:但如上所述,它缺少一些功能:给定指向多态基类的指针,它不会显示派生类型中的数据,但这正是我需要的

还有另一个例子,log_archive:这似乎也是一个很好的起点,它应该与多态类型一起工作,从以下几点判断:

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\u oarchive\u impl,因此包括。但这样做会导致大量错误,因为它试图在xml_oarchive上注册非nvp成员


在过去的几个小时里,我一直在谷歌上搜索并试图找到解决方案,所以,也许你们中的一些人已经这样做了,或者知道如何修复简单的日志存档以处理多态类型,或者知道如何修复日志存档以避免抱怨非nvp成员。

你希望存档如何知道序列化成员的名称?我想先用一个空名称,一个类型可能是后者,总比没有好。现在的问题只是让它工作起来:也许在不久的将来,我们可以同时支持nvp和非nvp成员,这样我们就可以有选择地决定使用更好的日志记录。