Я пытаюсь протестировать следующий пример кода, в котором объясняется, как сериализовать определенный пользователем класс примитивного типа в boost, он работает нормально, но если я переключусь на polymorphic_archive (тестирование с помощью polymorphic_text_ *), который мне придется использовать в моем проекте, он не компилируется, и я изо всех сил пытаюсь это исправить (тестирование в vc ++ 2008).
Весь код можно найти по следующим 3 ссылкам: http://www.boost.org/doc/libs/1_46_1/libs/serialization/test/test_primitive.cpp http://www.boost.org/doc/libs/1_46_1/libs/serialization/test/test_tools.hpp и libs / 1_46_1 / libs /serialization/test/text_archive.hpp
Пожалуйста, измените заголовки и typedef в text_archive.hpp на полиморфные, как показано ниже, чтобы получить ошибку:
#include <boost/archive/polymorphic_text_oarchive.hpp>
typedef boost::archive::polymorphic_text_oarchive test_oarchive;
#include <boost/archive/polymorphic_text_iarchive.hpp>
typedef boost::archive::polymorphic_text_iarchive test_iarchive;
Используемые флаги препроцессора:
BOOST_ALL_DYN_LINK; BOOST_FILESYSTEM_NO_DEPRECATED; BOOST_FILESYSTEM_VERSION = 3
Сообщение об ошибке:
Пожалуйста помоги.
Вы не можете использовать полиморфные архивы вместе с
#include <boost/archive/polymorphic_text_oarchive.hpp>
typedef boost::archive::polymorphic_text_oarchive test_oarchive;
#include <boost/archive/polymorphic_text_iarchive.hpp>
typedef boost::archive::polymorphic_text_iarchive test_iarchive;
. См. этот билет Boost для объяснения.