boost serialization

-lboost_serialization

https://www.ibm.com/developerworks/cn/aix/library/au-boostserialization/
#include <boost/archive/text_iarchive.hpp> 
#include <boost/archive/text_oarchive.hpp> 
 
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp> 
无需额外编码,就可以将 C++ 编程语言中的很多元素序列化。类、类指针、数组和 Standard Template Library (STL) 集合都可以被序列化

要对某个类进行序列化,则必须在类定义中定义一个名为 serialize 的方法。在转储和恢复类的过程中会调用该方法
 
typedef struct date { 
   unsigned int m_day;
   unsigned int m_month;
   unsigned int m_year;
} date;

 
  template<class Archive>
    void serialize(Archive& archive, const unsigned int version)
    {
        archive & BOOST_SERIALIZATION_NVP(m_day);
        archive & BOOST_SERIALIZATION_NVP(m_month);
        archive & BOOST_SERIALIZATION_NVP(m_year);
    }

 
serialize 方法的非侵入性版本

 
namespace boost {
namespace serialization {

template<class Archive>
void serialize(Archive& archive, date& d, const unsigned int version)
{
    archive & BOOST_SERIALIZATION_NVP(d.m_day);
    archive & BOOST_SERIALIZATION_NVP(d.m_month);
    archive & BOOST_SERIALIZATION_NVP(d.m_year);
}

} // namespace serialization
} // namespace boost

原文地址:https://www.cnblogs.com/anjsxz/p/3733489.html