为模板类提升Load_Construct_Data

时间:2016-11-09 02:38:51

标签: c++ templates serialization boost boost-serialization

我试图序列化一个没有默认构造函数的类,根据boost文档很清楚,需要覆盖方法。

http://www.boost.org/doc/libs/1_45_0/libs/serialization/doc/serialization.html#constructors

我希望序列化的类是iteself一个模板类。

////Overrides for non-default constructor used in Node<NU
namespace boost
{
    namespace serialization
    {
        template<class Archive>
        inline void load_construct_data(Archive & ar, Feature<96> * t, const unsigned int file_version)
        {
            // retrieve data from archive required to construct new instance
            int id;
            ar >> id;
            // invoke inplace constructor to initialize instance of Feature
            ::new(t)Feature<96>(id);
        }

        template<class Archive>
        inline void save_construct_data(Archive & ar, const Feature <96> * t, const unsigned int file_version)
        {
            // save data required to construct instance
            ar << t->id();
        }
    }
}

我如何使这些方法通用?为了使用特征&lt; T&gt;?

我在文档中或StackOverflow上看不到这个。想法?

0 个答案:

没有答案