Boost使えばポインタメンバもちゃんとシリアライズできる?

参考元

boost::serializationの使い方

をまとめると

  • boostのserialization使えば、ポインタメンバも(がんばれば!)ちゃんとシリアライズできる。
  • 保存したいオブジェクトのクラスが引数なしコンストラクタを実装してればなんもしなくてもOK
  • 引数なしコンストラクタを実装してなければ、boost::serializeに保存したいクラスに対応したsave_construct_data, load_construct_dataを定義せよ

ってことかな。

シリアライズしたいと考えているプログラムはクラスのメンバとして他のクラスオブジェクトのポインタを多数保持しているし、同じオブジェクトの持ち主がたくさんいるので(僕が設計したわけではない。ここ大事。)これはこれで面倒かつカオスになりそうな気がするなぁ。

シリアライズ自体を諦めるか悩みどころ。他にもっと簡単な方法があるといいのだけれど。