
Hi all, Compiling the following program with Boost 1.42 fires an static assertion in boost/serialization/shared_ptr.hpp:153. This is expected. But if I change the order of includes (compile with -DCHANGE) the assertion fires in boost/serialization/shared_ptr.hpp:121. The assertion is expected but I found it strange that I end up compiling a different part of the same file... The code in that section seems related to serialization of shared_ptr in version 1_32, but since I'm not able to understand the difference, I'm just reporting it in case the order of #includes might affect how shared_ptr's get serialized. Regards ---code--- #include <boost/shared_ptr.hpp> #ifndef CHANGE #include <boost/serialization/shared_ptr.hpp> #endif #include <boost/archive/xml_oarchive.hpp> #include <boost/archive/xml_iarchive.hpp> #ifdef CHANGE #include <boost/serialization/shared_ptr.hpp> #endif void test() { boost::shared_ptr<int> p (new int); *p = 12345; boost::archive::xml_iarchive ia(std::cin); boost::serialization::load(ia, p, 0); }