boost::serialization模块shared_ptr序列化示例
在C++中,shared_ptr是一种非常有用的智能指针,它可以让我们更方便地管理动态分配的内存。但是,在使用boost::serialization库时,直接将shared_ptr序列化可能会出现问题。因此,我们需要扩展boost::serialization库来支持对shared_ptr对象的序列化和反序列化。
下面是一个简单的示例程序,它展示了如何使用boost::serialization库来序列化shared_ptr对象:
#include <boost/shared_ptr.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <sstream>
struct MyClass {
int x;
std::string str;
template<class Archive>
void serialize(Archive & ar, const unsigned int version) {
ar & x;
ar & str;
}
};
int main() {
// 创建shared_ptr对象
boost::shared_ptr<MyClass> ptr(new MyClass);
ptr->x = 42;
ptr->str = "Hello, world!"