Здравствуйте, agolubtsov, Вы писали:
A>Здравствуйте, Vinick, Вы писали:
V>>Здравствуйте, k732, Вы писали:
K>>>Сам дек целиком нужен лишь с одной стороны. Если его передать, сереализовав данные, то на другой нужно лишь усредненное.
K>>>Можно ли как сделать, чтоб при сериализации бралось лишь усредненное значение, а при десериализации оно и использовалось для инициализации дека ?
V>>А если разделить чтение и запись как здесь
V>>Splitting serialize into save/load
A>И не забываем про второй параметр метода serialize
A>пускай если version = 1, то сериализуем среднее иначе весь объект
ну впринципе идея понятна. Только
1. Как сериализатору указать версию (желательно, чтоб полностью сериализовалось по умолчанию)
2. Я так понимаю, что нужно что-то вроде
template<class Archive>
void save (Archive& archive, const unsigned int version) const
{
archive & m_time;
archive & (!version) ? m_values : m_values.avg();
}
template<class Archive>
void load (Archive& archive, const unsigned int version)
{
archive & m_time;
archive & (!version) ? m_values : ... ?;
}
тоесть для сериализации понятно: если version = 0, то сериализуем весь объект, иначе только среднее значение (int)
А вот при десереализации если 0, то опять весь контейнер, а вот если не 0, то нужно как-то проинициализировать объект руками.
Вот здесь я просто не понял как