0
我有個從像這樣衍生2種多態類型:升壓::序列化和鹼/派生關係尚未註冊
class Base1 {...};
class Base2 {...};
class Derived1 : public Base1 {...};
class Derived : public Derived1, public Base2 {};
我使用
BOOST_CLASS_EXPORT_KEY(Derived)
在序列頭文件的。和
BOOST_CLASS_EXPORT_IMPLEMENT(Derived)
爲實現Derived的序列化自由函數的翻譯單元,它只爲兩個基地調用base_object。我爲Base1,Base2,Derived1的NONE做了這個。 我只是實例化boost :: mpi所需檔案的序列化函數。 所有這些都在鏈接到的共享對象中以生成可執行文件。
當我使用Base1 *指針時,保存到存檔失敗。
調試時,我看到
boost/archive/detail/oserializer.hpp
,圍繞線393,派生類型正確註冊,但例外是在411只是一點點後扔在那裏說
"the base/derived relationship hasn't be registered"
並且例外顯示類型
Derived
和
Base1
我該如何註冊關係本身?