
I believe that Joaquin has found the "last one". The fix is in 1.34 and hopefully there won't be any more. If you want to help, you could test your case against the cvs tree. Robert Ramey Kim Barrett wrote:
In boost 1.33.1, using gcc 3.3.5 (SuSE9.3 on x86 if it matters)
I've run into an include order problem with the serialization library.
It seems that including <boost/serialization/nvp.hpp> before including <boost/archive/polymorphic_iarchive.hpp> (or oarchive) doesn't work. In a translation unit that does this and includes an invocation of serialization, I get an error of the form:
.../iserializer.hpp: In constructor `...iserializer<Archive, T>::iserializer() [with ARchive = polymorphic_archive, T = my_type]': ... lots of intermediate instantiations ... error: incomplete type boost::serialization::extended_type_info_null<my_type> cannot be used to name a scope
If nvp.hpp is included later (or not explicitly included at all, since I see that polymorphic_iarchive.hpp includes it at the end of its include block), all is well. A little more poking at it by hoisting out the nested includes from nvp.hpp directly into my source file found that including polymorphic_[io]archive.hpp before type_info_implementation.hpp makes the problem go away too.
nvp -> level -> traits -> type_info_implementation
I know Robert has fixed a bunch of include order issues, and I think I recall that some of those fixes were post-1.33.1. Is this a known one? Or is a reproducible test case needed? Or is this a real include order dependency that one simply must avoid?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost