【发布时间】:2012-02-26 15:26:00
【问题描述】:
是否可以使用 Boost 序列化库非侵入性地序列化具有私有数据但具有公共 get/set 方法的类。如果没有,是否有其他库能够做到这一点? 谢谢
【问题讨论】:
-
有你知道的示例代码吗?
标签: c++ serialization boost
是否可以使用 Boost 序列化库非侵入性地序列化具有私有数据但具有公共 get/set 方法的类。如果没有,是否有其他库能够做到这一点? 谢谢
【问题讨论】:
标签: c++ serialization boost
如果必须,您可以反序列化/序列化为临时变量(存档不会神奇地知道被序列化的变量是类的字段)。调整来自tutorial 的序列化函数以假设不能直接访问数据:
template<class Archive>
void serialize(Archive & ar, gps_position & g, const unsigned int version)
{
int degrees = g.getDegrees();
int minutes = g.getMinutes();
float seconds = g.getSeconds();
ar & degrees;
ar & minutes;
ar & seconds;
g.setDegrees(degrees);
g.setMinutes(minutes);
g.setSeconds(seconds);
}
【讨论】: