
I am in the process of cleaning up the boost tree such that we can compile all our code with g++ -Wall -W warnings. The required changes are mostly trivial, but here is one I am not sure about: .../boost/boost/type_traits/is_polymorphic.hpp:28: warning: `struct boost::detail::is_polymorphic_imp1<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >::d1' has virtual functions but non-virtual destructor .../boost/boost/type_traits/is_polymorphic.hpp:28: warning: `struct boost::detail::is_polymorphic_imp1<iotbx::detectors::Mar345Adaptor>::d1' has virtual functions but non-virtual destructor Could or should a virtual destructor be added here? Thank you in advance! Cheers, Ralf P.S.: Here is the complete warning #1: .../boost/boost/type_traits/is_polymorphic.hpp: At global scope: .../boost/boost/type_traits/is_polymorphic.hpp: In instantiation of `boost::detail::is_polymorphic_imp1<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >::d1': .../boost/boost/type_traits/is_polymorphic.hpp:56: instantiated from `boost::detail::is_polymorphic_imp1<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >' .../boost/boost/type_traits/is_polymorphic.hpp:91: instantiated from `boost::detail::is_polymorphic_imp<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >' .../boost/boost/type_traits/is_polymorphic.hpp:96: instantiated from `boost::is_polymorphic<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >' .../boost/boost/mpl/if.hpp:67: instantiated from `boost::mpl::if_<boost::is_polymorphic<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >, boost::python::objects::polymorphic_id_generator<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >, boost::python::objects::non_polymorphic_id_generator<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> > >' .../boost/boost/python/object/inheritance.hpp:65: instantiated from `boost::python::objects::dynamic_id_generator<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >' .../boost/boost/python/object/inheritance.hpp:72: instantiated from `void boost::python::objects::register_dynamic_id(T*) [with T = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>]' .../boost/boost/python/object/class_metadata.hpp:97: instantiated from `void boost::python::objects::register_shared_ptr_from_python_and_casts(T*, Bases) [with T = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, Bases = boost::python::bases<mpl_::void_, mpl_::void_>]' .../boost/boost/python/object/class_metadata.hpp:225: instantiated from `static void boost::python::objects::class_metadata<T, X1, X2, X3>::register_aux2(T2*, Callback) [with T2 = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, Callback = boost::integral_constant<bool, false>, T = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' .../boost/boost/python/object/class_metadata.hpp:219: instantiated from `static void boost::python::objects::class_metadata<T, X1, X2, X3>::register_aux(void*) [with T = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' .../boost/boost/python/object/class_metadata.hpp:205: instantiated from `static void boost::python::objects::class_metadata<T, X1, X2, X3>::register_() [with T = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' .../boost/boost/python/class.hpp:506: instantiated from `void boost::python::class_<T, X1, X2, X3>::initialize(boost::python::no_init_t) [with W = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' .../boost/boost/python/class.hpp:637: instantiated from `boost::python::class_<T, X1, X2, X3>::class_(const char*, boost::python::no_init_t) [with W = cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int>, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' .../cctbx/maptbx/boost_python/mapper.cpp:100: instantiated from here .../boost/boost/type_traits/is_polymorphic.hpp:28: warning: `struct boost::detail::is_polymorphic_imp1<cctbx::maptbx::mapper_factory<cctbx::maptbx::asu, double, long int> >::d1' has virtual functions but non-virtual destructor __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com