
Dear all, yesterday we upgraded to vstudio 2008 and Boost 1.36. However it seems that the serialization library gives a STATIC_WARNING now. the code uses a shared_ptr of a data structure which has no virtual function. This was ok in Boost 1.34 and I don't see why this should be wrong: #include "stdafx.h" #include <sstream> #include <boost\shared_ptr.hpp> #include <boost\serialization\shared_ptr.hpp> #include <boost\serialization\nvp.hpp> #include <boost\archive\xml_iarchive.hpp> struct Data { std::string m_str; }; template <class Archive> void serialize(Archive& ar, Data& r, const unsigned int /*version*/) { ar & BOOST_SERIALIZATION_NVP(r.m_str); } struct DataStorage { template <class Archive> void serialize(Archive& ar, const unsigned int /*version*/) { ar & BOOST_SERIALIZATION_NVP(m_ptrBla); } private: //data typedef boost::shared_ptr<Data> DataPtr; DataPtr m_ptrBla; }; int _tmain() { DataStorage data; std::stringstream sstr; //boost::archive::xml_oarchive oa(sstr); //oa << boost::serialization::make_nvp("bla", data); boost::archive::xml_iarchive ia(sstr); ia >> boost::serialization::make_nvp("bla", data); return 0; } It gives warning c4099 where '<---': const extended_type_info * get_derived_extended_type_info(const T & t) const { // note: this implementation - based on usage of typeid (rtti) // only does something if the class has at least one virtual function. BOOST_STATIC_WARNING(boost::is_polymorphic<T>::value); //<--- return detail::extended_type_info_typeid_0::get_extended_type_info( typeid(t) );