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
我该如何注册关系本身?