繁体   English   中英

使用boost序列化序列化类而不更改类

[英]serializing classes using boost serialization without changing the class

每当我们创建一个类时,即从template<class archive>arBOOST_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; 
    } 

}; 

我建议您从文档开始:)

当包含相关标头时,STL容器是可序列化的:

#include <boost/serialization/map.hpp>
#include <boost/serialization/string.hpp>

开箱即用地支持许多其他内容。

可以为通过其他方法(例如,融合序列,Qt QObjects等)已经“可反射”的类型创建通用包装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM