У меня есть объект, который я сериализую с помощью форматированного архива. Объект имеет член типа boost::math::normal_distribution<double> distribution
, однако boost не предоставляет метод сериализации для этого типа, поэтому вместо этого я сериализую среднее и стандартное отклонение. Моя функция сериализации выглядит следующим образом:boost serialization: член обновления при десериализации
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), а в методе загрузки вы можете создать экземпляр дистрибутива после того, как у вас есть среднее значение и std. – Scottymac