ブーストのサンプルコードを使用して、オブジェクトのポインターのベクトルをファイルに格納しています。私のベクトルは:
class VOMC{
public:
vector<State*> vomc;
...
...
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & vomc;
}
}
これにより、次のエラーが発生します(他にもいくつかあります)。
/usr/local/include/boost/serialization/access.hpp:118:9: error: ‘class State’ has no member named ‘serialize’
エラーが発生するのは、Stateオブジェクトもシリアル化可能にする必要があることを示している可能性があります(そのオブジェクトについてはわかりません)。さらに、ポインタ(メモリへのアドレス)を格納しても実際のデータは格納されないため、混乱します。実際のデータは、プログラムの終了時に解放されます。上記の状況の回避策はありますか?ブーストなしでも。