
Robert Ramey wrote:
Could you send a little more context. This isn't happening in our tests.
Just try a file containing two lines: #include <boost/type_traits/is_abstract.hpp> #include <boost/archive/binary_iarchive.hpp>
/space/NM/boost/boost/archive/binary_iarchive.hpp:21, from ../../../src/runtime/runtime_standalone.cpp:14: /space/NM/boost/boost/serialization/is_abstract.hpp:30: error: redefinition of `struct boost::is_abstract<T>' /space/NM/boost/boost/type_traits/is_abstract.hpp:130: error: previous definition of `struct boost::is_abstract<T>'
The second patch addresses this problem, but I'd also suggest to remove boost/serialization/is_abstract.hpp to avoid further problems.
What about compilers which don't support is_abstract ? This would break serialization for all those compilers.
Why serialization/is_abstract.hpp is in better position to handle such compilers then type_traits/is_abstract.hpp? I'm not saying that my patch is ideal, but having two headers for the same purpose is very bad idea, IMO. - Volodya