在不更改类的情况下使用boost序列化来序列化类
serializing classes using boost serialization without changing the class
每次创建一个类(例如从template<class archive>
到ar
)时都必须编写这段代码&BOOST_SERIALIZATION_NVP(b)
。我们怎样才能使它简短?如何序列化STL容器?
class Employee
{
private:
friend class boost::serialization::access;
template<class Archive> void serialize(Archive & ar,
const unsigned int version)
{
ar & BOOST_SERIALIZATION_NVP(a);
ar & BOOST_SERIALIZATION_NVP(b);
}
int a;
int b;
public:
Employee(int a, int b)
{
this->a = a;
this->b = b;
}
};
我建议你从文档开始:)
- http://www.boost.org/doc/libs/1_55_0/libs/serialization/doc/index.html(从Serializable Concept开始)
STL容器在包含相关头文件时是可序列化的:
#include <boost/serialization/map.hpp>
#include <boost/serialization/string.hpp>
许多其他的东西都是开箱即用的。
您可以为已经通过其他方式(例如Fusion Sequences, Qt QObjects等)"可反射"的类型制作泛型包装器
相关文章:
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- C++boost序列化多态性问题
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 如何在 boost::asio 中将打包的结构作为消息传递?(无序列化)
- 如何使用 Boost 序列化mersenne_twister_engine?
- boost::序列化中的派生类偏移量计算.有效吗?
- C++ Boost - 序列化错误 - 将"const B"作为"this"参数
- 序列化模式类似于boost::序列化
- 序列化和反序列化boost共享指针
- 使用 Boost::Serialization 序列化具有 std::mt19937_64 成员的类
- boost::container::vector 无法用谷物序列化?
- 使用 Boost 对具有 const 成员的类进行序列化
- 使用 boost::序列化代码将 *this 传递给模板函数会产生错误
- C++ 从 Boost object_pool构造的指针的 Boost 二进制序列化
- 如何使用谷物序列化 boost::p tr_vector
- 如何用谷物序列化 boost::uuid
- 派生类行程的序列化Boost断言
- 如何使用Boost序列化来序列化Boost scoped_array
- 如何序列化 <boost::shared_ptr<void *>> 类型的列表变量
- 我如何重载序列化boost函数,使其一个用于文件存储,另一个用于tcp消息