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

时间:2014-03-24 10:34:03

标签: c++ boost

这段代码必须在我们每次上课时编写,即从template<class archive>ar&amp; 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; 
    } 

}; 

1 个答案:

答案 0 :(得分:0)

我建议你从文档开始:)

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

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

支持开箱即用的其他东西。

可以为已经制作的类型制作通用包装器&#34; reflectible&#34;通过其他方式(例如Fusion序列,Qt QObjects等)