利用促进作用:帝国化,“最佳”方式是什么,使 mu成员含有附庸和衍生价值的物体序列化?
class Example
{
public:
Example(float n) :
num(n),
sqrt_num(-1.0)
{}
// compute and cache sqrt on first read
float get_sqrt() const
{
if(sqrt_num < 0)
sqrt_num = sqrt(num);
return sqrt_num;
}
template <class Archive>
void serialize(Archive& ar, unsigned int version)
{ ... }
private:
float num;
mutable float sqrt_num;
};
因此,出于维护原因,我想避免将序列号分离为单独的“()”和(或)装载方法。
序列号的次级实施:
template <class Archive>
void serialize(Archive& ar, unsigned int version)
{
ar & num;
sqrt_num = -1.0;
}
处理“航空化”案,但在序列化案件中,焦土价值被杀死,必须重新计算。
本案的最佳做法是什么?