【发布时间】:2013-04-08 23:52:49
【问题描述】:
我有一个对象,我正在使用 boost 存档进行序列化。该对象有一个boost::math::normal_distribution<double> distribution 类型的成员,但是 boost 没有为这种类型提供序列化方法,所以我序列化了平均值和标准差。我的序列化函数如下所示:
template<class Archive>
void serialize(Archive& ar, const unsigned int version){
ar & BOOST_SERIALIZATION_NVP(mean);
ar & BOOST_SERIALIZATION_NVP(std);
}
当对象被反序列化时,我想用这些参数重新创建分布(因为默认是用均值 0 和标准 1 构造的)。我把这段代码放在哪里?在构造函数中?
谢谢
【问题讨论】:
-
您可以拆分保存和加载函数(BOOST_SERIALIZATION_SPLIT_MEMBER),在加载方法中,您可以在获得均值和标准值后实例化分布。
标签: c++ serialization boost boost-serialization