У меня 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 для обоих оснований. Я делаю это для NONE Base1, Base2, Derived1. Я только создаю экземпляр функции для архивов, необходимых для boost :: mpi. Все это в общем объекте, который связан для генерации исполняемого файла.
Сохранение в архиве сбой при использовании указателя Base1 *.
Во время отладки я вижу в
boost/archive/detail/oserializer.hpp
что вокруг линии 393, производный тип правильно зарегистрирован, но исключение только чуть позже в 411, где он говорит
"the base/derived relationship hasn't be registered"
и исключение показаны типы
Derived
и
Base1
Как я могу зарегистрировать отношения самостоятельно?