[Boost-bugs] [ boost-Bugs-1254062 ] 1.33 RC2: polymorphic stuff broken further??

Bugs item #1254062, was opened at 2005-08-08 03:12 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1254062&group_id=7586 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: serialization Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Robert Ramey (ramey) Summary: 1.33 RC2: polymorphic stuff broken further?? Initial Comment: 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 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1254062&group_id=7586 ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ Boost-bugs mailing list Boost-bugs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/boost-bugs

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 ]
Look into the new documentation under the section "Rationale" for and explanation of this issue and how to address it.
(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>'
This doesn't show up with demo_exception.cpp, I would have to see more context. Again, this is described in the new "Rational Section"
It is especially difficult to enforce it if you serialize members with "ar & m1 & m2 .. " notation.
This is not enforced by the "&" operator for just this reason.
----- 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' ....
This is an error in the demo - it wasn't updated for the new serialization of shared pointers. I've fixed it and now plan to check it into the developement CVS.
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.
I don't see this on my machine. If you're projects specify a specific library to link to, this may be an issue with the new auto-link. See the section in the documentation of auto-linking.
Additionally:
boost\boost\archive\detail\interface_iarchive.hpp(73) : error C2039: 'basic_iarchive' : is not a member of 'boost::archive::polymorphic_iarchive'
..
#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 just compiled a test file on my machine. The test file consisted of just the above headers. It compiled with no problem so I can't reproduce it. Thanks for helping with the testing of this. Robert Ramey

Robert Ramey wrote:
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 ]
Look into the new documentation under the section "Rationale" for and explanation of this issue and how to address it. [snip]
Should this reply be posted on the SF bug tracker? jon

I wouldn't know. Is there any reason it shouldn't be? Robert Ramey Jonathan Wakely wrote:
Look into the new documentation under the section "Rationale" for and explanation of this issue and how to address it. [snip]
Should this reply be posted on the SF bug tracker?

Robert Ramey wrote:
I wouldn't know. Is there any reason it shouldn't be?
If the answer's only posted on the mailing list the submitter generally won't see it.
Jonathan Wakely wrote:
Look into the new documentation under the section "Rationale" for and explanation of this issue and how to address it. [snip]
Should this reply be posted on the SF bug tracker?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- "The ability to quote is a serviceable substitute for wit." - W. Sommerset Maugham
participants (3)
-
Jonathan Wakely
-
Robert Ramey
-
SourceForge.net