ブーストが指しているオブジェクトのシリアル化関数を定義している限り、ブーストはポインターを自動的にシリアル化することを理解していますが、
を取るブーストシリアル化関数を書きたい場合はどうすればよいmyClass pointer
ですか?
ポイントされているオブジェクトを保存してから、それを指すポインターを復元するというデフォルトのアクションをブーストに実行させたくありません。ブーストで何か違うことをしたい。
ブーストが指しているオブジェクトのシリアル化関数を定義している限り、ブーストはポインターを自動的にシリアル化することを理解していますが、
を取るブーストシリアル化関数を書きたい場合はどうすればよいmyClass pointer
ですか?
ポイントされているオブジェクトを保存してから、それを指すポインターを復元するというデフォルトのアクションをブーストに実行させたくありません。ブーストで何か違うことをしたい。
特別なクラスの通常のポインターのシリアル化とは異なる動作が必要な場合は、次の 2 つのオプションがあります。
おそらく、必要な動作を実現するために、 myClass ポインターを含むすべての構造体/クラスの serialize() メソッドを調整できます。ただし、そのようなポインターが多数ある場合、これはオプションではありません。別の可能性として、http: //www.boost.org/doc/libs/1_47_0/libs/serialization/doc/index.html (myClass ポインター用に記述) に記載されている無料の関数を使用することもできます。
もう 1 つのオプションは、1 つのアーカイブ タイプ (バイナリ アーカイブなど) しか使用しない場合にのみ機能します。アーカイブ クラスから派生させ、メソッド save (および load) のオーバーロードを追加できます。