書き込みアクセス権のないクラスをシリアル化したい。つまり、ソースファイルもヘッダーファイルも変更できません。さらに、ほとんどのフィールドはプライベートであり、getterおよびsetter関数を介してアクセスされます。
(ブーストチュートリアルで説明されているように)保存と読み込みのためにさまざまな関数を作成するのが良いかどうかを誰かに教えてもらえますか?...
template<class Archive>
void save(Archive & ar, gps_position &g, const unsigned int version) const
{
// note, version is always the latest when saving
ar & g.deg;
ar & g.min;
}
template<class Archive>
void load(Archive & ar, gps_position &g, const unsigned int version)
{
if(version > 0)
ar & g.deg;
ar & g.min;
}
BOOST_SERIALIZATION_SPLIT_MEMBER()
...そしてパブリック関数を使用します:
ar & g.getDeg();
それ以外の
ar & g.deg;
(セッターと同様)?? 私はC++とシリアル化に本当に慣れていないので、ヒントにとても感謝しています。
最高、アレックス
編集:チュートリアルを後押しするためのリンクを追加