介绍
侵入式
Demo
#include <iostream>
#include <ctime>
#include <vector>
#include <boost/archive/binary_iarchive.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/export.hpp>
#include <boost/serialization/vector.hpp>
#include <sstream>
class Person
{
public:
Person(std::string strName, int nAge)
{
m_strName = strName;
m_nAge = nAge;
}
void Set(std::string strName, int nAge)
{
m_strName = strName;
m_nAge = nAge;
}
void Print()
{
std::cout << m_strName << " " << m_nAge << std::endl;
}
private:
friend class boost::serialization::access;
template<class AR>
void serialize(AR& ar, const unsigned int version)
{
ar& m_strName;
ar& m_nAge;
}
private:
std::string m_strName;
int m_nAge;
};
int main()
{
Person person1("zhangsan", 15);
std::ostringstream os;
boost::archive::binary_oarchive oa(os);
oa << person1;
std::string strSerialization = os.str();
std::cout << strSerialization << std::endl;
Person person2("", 0);
std::istringstream is(strSerialization);
boost::archive::binary_iarchive ia(is);
ia >> person2;
person2.Print();
return 0;
}