[root@intracert-dl320g6 diff]# g++ testcase.cpp -lboost_serialization In file included from /usr/include/boost/serialization/void_cast.hpp:26, from /usr/include/boost/archive/detail/oserializer.hpp:69, from /usr/include/boost/archive/detail/interface_oarchive.hpp:24, from /usr/include/boost/archive/detail/common_oarchive.hpp:20, from /usr/include/boost/archive/basic_binary_oarchive.hpp:30, from /usr/include/boost/archive/binary_oarchive_impl.hpp:22, from /usr/include/boost/archive/binary_oarchive.hpp:20, from testcase.cpp:3: /usr/include/boost/type_traits/is_virtual_base_of.hpp: In instantiation of ‘boost::detail::is_virtual_base_of_impl >::Y’: /usr/include/boost/type_traits/is_virtual_base_of.hpp:70: instantiated from ‘const bool boost::detail::is_virtual_base_of_impl >::value’ /usr/include/boost/type_traits/is_virtual_base_of.hpp:78: instantiated from ‘const bool boost::detail::is_virtual_base_of_impl2::value’ /usr/include/boost/type_traits/is_virtual_base_of.hpp:87: instantiated from ‘boost::is_virtual_base_of’ /usr/include/boost/mpl/if.hpp:67: instantiated from ‘boost::mpl::if_, boost::mpl::identity >, boost::mpl::identity > >’ /usr/include/boost/mpl/eval_if.hpp:37: instantiated from ‘boost::mpl::eval_if, boost::mpl::identity >, boost::mpl::identity > >’ /usr/include/boost/serialization/void_cast.hpp:253: instantiated from ‘const boost::serialization::void_cast_detail::void_caster& boost::serialization::void_cast_register(const Derived*, const Base*) [with Derived = derived, Base = base]’ /usr/include/boost/serialization/base_object.hpp:65: instantiated from ‘static const void* boost::serialization::detail::base_register::polymorphic::invoke() [with Base = base, Derived = derived]’ /usr/include/boost/serialization/base_object.hpp:79: instantiated from ‘static const void* boost::serialization::detail::base_register::invoke() [with Base = base, Derived = derived]’ /usr/include/boost/serialization/base_object.hpp:102: instantiated from ‘typename boost::serialization::detail::base_cast::type& boost::serialization::base_object(Derived&) [with Base = base, Derived = derived]’ testcase.cpp:27: instantiated from ‘void derived::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_oarchive]’ /usr/include/boost/serialization/access.hpp:109: instantiated from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive, T = derived]’ /usr/include/boost/serialization/serialization.hpp:74: instantiated from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive, T = derived]’ /usr/include/boost/serialization/serialization.hpp:133: instantiated from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive, T = derived]’ /usr/include/boost/archive/detail/oserializer.hpp:144: instantiated from ‘void boost::archive::detail::oserializer::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::binary_oarchive, T = derived]’ testcase.cpp:49: instantiated from here /usr/include/boost/type_traits/is_virtual_base_of.hpp:67: error: looser throw specifier for ‘boost::detail::is_virtual_base_of_impl >::Y::~Y() [with Base = base, Derived = derived]’ testcase.cpp:35: error: overriding ‘virtual derived::~derived() throw ()’ /usr/include/boost/type_traits/is_virtual_base_of.hpp: In instantiation of ‘boost::detail::is_virtual_base_of_impl >::X’: /usr/include/boost/type_traits/is_virtual_base_of.hpp:70: instantiated from ‘const bool boost::detail::is_virtual_base_of_impl >::value’ /usr/include/boost/type_traits/is_virtual_base_of.hpp:78: instantiated from ‘const bool boost::detail::is_virtual_base_of_impl2::value’ /usr/include/boost/type_traits/is_virtual_base_of.hpp:87: instantiated from ‘boost::is_virtual_base_of’ /usr/include/boost/mpl/if.hpp:67: instantiated from ‘boost::mpl::if_, boost::mpl::identity >, boost::mpl::identity > >’ /usr/include/boost/mpl/eval_if.hpp:37: instantiated from ‘boost::mpl::eval_if, boost::mpl::identity >, boost::mpl::identity > >’ /usr/include/boost/serialization/void_cast.hpp:253: instantiated from ‘const boost::serialization::void_cast_detail::void_caster& boost::serialization::void_cast_register(const Derived*, const Base*) [with Derived = derived, Base = base]’ /usr/include/boost/serialization/base_object.hpp:65: instantiated from ‘static const void* boost::serialization::detail::base_register::polymorphic::invoke() [with Base = base, Derived = derived]’ /usr/include/boost/serialization/base_object.hpp:79: instantiated from ‘static const void* boost::serialization::detail::base_register::invoke() [with Base = base, Derived = derived]’ /usr/include/boost/serialization/base_object.hpp:102: instantiated from ‘typename boost::serialization::detail::base_cast::type& boost::serialization::base_object(Derived&) [with Base = base, Derived = derived]’ testcase.cpp:27: instantiated from ‘void derived::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_oarchive]’ /usr/include/boost/serialization/access.hpp:109: instantiated from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive, T = derived]’ /usr/include/boost/serialization/serialization.hpp:74: instantiated from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive, T = derived]’ /usr/include/boost/serialization/serialization.hpp:133: instantiated from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive, T = derived]’ /usr/include/boost/archive/detail/oserializer.hpp:144: instantiated from ‘void boost::archive::detail::oserializer::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::binary_oarchive, T = derived]’ testcase.cpp:49: instantiated from here /usr/include/boost/type_traits/is_virtual_base_of.hpp:60: error: looser throw specifier for ‘boost::detail::is_virtual_base_of_impl >::X::~X() [with Base = base, Derived = derived]’ testcase.cpp:35: error: overriding ‘virtual derived::~derived() throw ()’