Boost.Serialization を初めて検討していますが、仮想ダイヤモンド継承構造のシリアル化に関する明確な評価 (または指示) が見つかりません。
次のクラス階層を検討してください。
class A { int a; }
class B1 : public virtual A { int b1; }
class B2 : public virtual A { int b2; }
class B3 : public virtual A { int b3; }
class C12 : public virtual B1, public virtual B2 { int c12; }
class C13 : public virtual B1, public virtual B3 { int c13; }
class C23 : public virtual B2, public virtual B3 { int c23; }
class D123 : public virtual C12, public virtual C13, public virtual C23 { int d123; }
Boost.Serialization を使用して、これらすべてのクラス内でシリアライゼーションを実装する適切な (できれば簡単な) 方法は何ですか?
注: シリアル化する必要があるポインターまたは参照クラス メンバーはありません。dynamic_cast<>
また、注意してください:この階層内の任意のクラスへのポインターまたは参照が、目的の最も派生した型であることを保証するために喜んで使用します。メンバーは、シリアル化されている現在のクラスと共に、適切にシリアル化および逆シリアル化されます。