-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