boost::serialization - problem move to 1.33.1 version

Hello all ! I write small test program using boost::serialization. If I use boost 1.32 - compilation OK. But I change boost to 1.33.1 - compiler rise error :( Where I be mistaken ? Compiler messages: OtherTest.cpp w:\Devil\Projects\PLTools2_boost_1.33.1\boost\boost\serialization\export.hpp(146) : error C2027: use of undefined type 'boost::serialization::extended_type_info_null' with [ T=BoostTest2::A ] w:\Devil\Projects\PLTools2_boost_1.33.1\boost\boost\serialization\export.hpp(146) : see reference to class template instantiation 'boost::serialization::extended_type_info_null' being compiled with [ T=BoostTest2::A ] w:\Devil\Projects\PLTools2_boost_1.33.1\boost\boost\serialization\export.hpp(145) : while compiling class-template member function 'void boost::archive::detail::guid_initializer::export_register(const char *)' with [ T=BoostTest2::A ] w:\Devil\Projects\PLTools2_boost_1.33.1\Tests\OtherTest\boost_test_2.h(64) : see reference to class template instantiation 'boost::archive::detail::guid_initializer' being compiled with [ T=BoostTest2::A ] Results This error point to line: (full code below) BOOST_CLASS_EXPORT_GUID( BoostTest2::B, "ClassB" ) OtherTest.cpp: #include <iostream> #include <sstream> #include <boost/serialization/vector.hpp> #include <boost/serialization/string.hpp> #include <boost/serialization/nvp.hpp> #include <boost/archive/xml_iarchive.hpp> #include <boost/archive/xml_oarchive.hpp> #include <boost/serialization/export.hpp> #include <boost/serialization/base_object.hpp> #include "boost_test_2.h" using namespace BoostTest2; /// ..... boost_test_2.h #pragma once namespace BoostTest2 { class A { public: A() {m_A = 1;} virtual ~A() { } int m_A; }; class B : public A { public: B() {m_B = 2;} virtual ~B() {} int m_B; }; class C : public A { public: C() {m_C = 3;} virtual ~C() {} int m_C; }; } #define BOOST_NVP(name,value) \ boost::serialization::make_nvp(name, value) namespace boost { namespace serialization { template<class Archive> void serialize(Archive & ar, BoostTest2::A &a, const unsigned int version) { ar & BOOST_NVP( "A", a.m_A ); } template<class Archive> void serialize(Archive & ar, BoostTest2::B &b, const unsigned int version) { ar & boost::serialization::make_nvp( "A", boost::serialization::base_object<A>(b) ); ar & BOOST_NVP( "B", b.m_B ); } template<class Archive> void serialize(Archive & ar, BoostTest2::C &c, const unsigned int version) { ar & boost::serialization::make_nvp( "A", boost::serialization::base_object<A>(c) ); ar & BOOST_NVP( "C", c.m_C ); } } } BOOST_CLASS_EXPORT_GUID( BoostTest2::B, "ClassB" ) BOOST_CLASS_EXPORT_GUID( BoostTest2::C, "ClassC" ) BOOST_IS_ABSTRACT( BoostTest2::A ) BOOST_CLASS_VERSION( BoostTest2::A , 0 )
participants (1)
-
Алексей Обухов