Opened 17 years ago
Closed 17 years ago
#455 closed Bugs (Works For Me)
1.33 RC2: polymorphic stuff broken further??
Reported by: | nobody | Owned by: | Robert Ramey |
---|---|---|---|
Milestone: | Component: | serialization | |
Version: | None | Severity: | |
Keywords: | Cc: |
Description
Hello again, i just downloaded 1.33 RC2 and noticed polymorphic serialization doesnt work for my projects anymore. These errors are new and different from RC1 (which didnt work too, but 1.32 works). I cant get it compile anymore (static compile time asserts and others)... I even loaded up the provided sample boost ser. projects and notice there are similar errors too (from libs\serialization\vc7ide\*.sln) ---- demo_exception demo_exception.cpp e:\SDK\Boost\boost_1_33_0_RC2\libs\serialization\vc7ide\..\..\..\boost\archive\detail\oserializer.hpp(566) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>' with [ x=false ] e:\SDK\Boost\boost_1_33_0_RC2\libs\serialization\vc7ide\..\..\..\boost\archive\detail\oserializer.hpp(566) : see reference to class template instantiation 'boost::STATIC_ASSERTION_FAILURE<x>' being compiled with [ x=false ] e:\SDK\Boost\boost_1_33_0_RC2\libs\serialization\vc7ide\..\..\..\boost\archive\basic_text_oarchive.hpp(78) : see reference to function template instantiation 'void boost::archive::save<Archive,T>(Archive &,T & )' being compiled with [ Archive=boost::archive::text_oarchive, T=School * ] e:\SDK\Boost\boost_1_33_0_RC2\libs\serialization\vc7ide\..\..\..\boost\archive\detail\interface_oarchive.hpp(85) : see reference to function template instantiation 'void boost::archive::basic_text_oarchive<Archive>::save_override<T>(T & ,int)' being compiled with [ Archive=boost::archive::text_oarchive, T=School * ] \SDK\Boost\boost_1_33_0_RC2\libs\serialization\example\demo_exception.cpp(219) : see reference to function template instantiation 'Archive &boost::archive::detail::interface_oarchive<Archive>::operator <<<School*>(T & )' being compiled with [ Archive=boost::archive::text_oarchive, T=School * ] (iserializer is same problem:) Boost\boost_1_33_0_RC2\libs\serialization\vc7ide\..\..\..\boost\archive\detail\iserializer.hpp(544) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>' (similar to error in my projects) These errors go away if i make objects to be serialized "const" e.g. (for the sample) school* const .. ???? This "constness" constraint didnt show up in 1.32. It is especially difficult to enforce it if you serialize members with "ar & m1 & m2 .. " notation. ----- demo_shared_ptr: Boost\boost_1_33_0_RC2\libs\serialization\example\demo_shared_ptr.cpp(138) : error C2039: 'sp_counted_base_impl' : is not a member of 'boost::detail' Boost\boost_1_33_0_RC2\libs\serialization\example\demo_shared_ptr.cpp(138) : error C2061: syntax error : identifier 'sp_counted_base_impl' .... There are some errors with invalid project references and library names at all (linker errors, tries to link with wrong libs). It seems the project files are out of sync for long time. ---------------- Additionally: boost\boost\archive\detail\interface_iarchive.hpp(73) : error C2039: 'basic_iarchive' : is not a member of 'boost::archive::polymorphic_iarchive' boost\boost\archive\polymorphic_iarchive.hpp(52) : see declaration of 'boost::archive::polymorphic_iarchive' boost\boost\archive\detail\interface_iarchive.hpp(72) : while compiling class-template member function 'void boost::archive::detail::interface_iarchive<Archive>::lookup_helper(const boost::serialization::extended_type_info *const ,boost::shared_ptr<T> &)' boost\boost\archive\detail\interface_iarchive.hpp(73) : error C2662: 'boost::archive::detail::basic_iarchive::lookup_basic_helper' : cannot convert 'this' pointer from 'boost::archive::polymorphic_iarchive' to 'boost::archive::detail::basic_iarchive &' Reason: cannot convert from 'boost::archive::polymorphic_iarchive' to 'boost::archive::detail::basic_iarchive' Conversion requires a second user-defined-conversion operator or constructor This is my include list (i use precompiled header): ... #include "boost/archive/polymorphic_oarchive.hpp" #include "boost/archive/polymorphic_iarchive.hpp" #include "boost/serialization/shared_ptr.hpp" #include "boost/serialization/serialization.hpp" #include "boost/serialization/utility.hpp" #include "boost/serialization/list.hpp" #include "boost/serialization/version.hpp" #include "boost/serialization/map.hpp" #include "boost/serialization/vector.hpp" #include "boost/serialization/string.hpp" #include "boost/serialization/split_member.hpp" (i had to move "boost/serialization/shared_ptr.hpp" backwards after "archive" headers in contrast to 1.32) These 1.33 poly serialization bugs are big showstoppers for us because we extensively use serialization. If they remain, 1.33 will have to be skipped... Regards, A. Focht
Note:
See TracTickets
for help on using tickets.