基本クラスと4つの派生クラスがあります。すべての派生クラスを基本クラスのポインター型のベクトルに格納します。最初の初期化中に、コンストラクターを使用して各派生型を異なる方法で作成します。基本的に、それらはそれぞれ、ctorに異なるパラメータタイプを持っています。(BOOST_CLASS_EXPORTをコンパイルするには、保護されたデフォルトのコンストラクターを提供する必要がありましたが、それは別の話です)。これらの派生クラスのすべてのメンバー(ctorに入力)を保存することはできません/できません。
ここで、boost :: serializeを使用してディスクからオブジェクトをロードすると、これらのメンバー(シリアル化されておらず、各派生型に固有)が破棄されます。また、基本クラスのポインターのみを格納しているため、これらの派生型を再初期化する方法を考えることはできません。
正確に必要なのは、すべてのコンテンツを削除せずに、派生型(ポインター)を部分的にロードできることです。
これを克服する方法はありますか、魔法のブースト定義または関数呼び出しはおそらくありますか?そうでなければ、boost :: serializeを使用したポリモーフィズムはまったく不可能です。何かが足りないはずであり、問題を十分に定義できることを願っています。