是否可以使用Boost序列化库非侵入性地序列化具有私有数据的类,但使用公共get / set方法。如果没有,是否有其他库能够做到这一点? Thnaks
答案 0 :(得分:1)
如果必须,您可以反序列化/序列化为临时变量(存档不会神奇地知道被序列化的变量是该类的字段)。调整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);
}