Boost logo

Boost Users :

Subject: Re: [Boost-users] [serialization] broken in 1.36
From: Robert Ramey (ramey_at_[hidden])
Date: 2008-09-12 13:17:15


Hmm - it would be wrong if DataPtr was the base class part of derived class
pointer. Perhaps the warning is over-zealous - would have to think about
this.

Robert Ramey

gast128 wrote:
> 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) );


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net