Re: [Boost-bugs] [Boost C++ Libraries] #10727: polymorphic serialization of shared_ptr fails

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #10727: polymorphic serialization of shared_ptr fails
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-10-06 16:50:13


#10727: polymorphic serialization of shared_ptr fails
-------------------------------+---------------------------
  Reporter: oswin.krause@… | Owner: ramey
      Type: Bugs | Status: reopened
 Milestone: To Be Determined | Component: serialization
   Version: Boost 1.58.0 | Severity: Regression
Resolution: | Keywords:
-------------------------------+---------------------------

Comment (by marco.craveiro@…):

 Hi,

 I've upgraded from boost 1.55 to boost 1.58 in debian testing; my code[1]
 compiles successfully with 1.55[2] but now fails with 1.58. Are there any
 changes required when moving to boost 1.58 from a serialisation
 perspective? An example of a file not compiling is [3], with the error:

 /usr/include/boost/archive/detail/iserializer.hpp:462:28: required from
 â€˜static void
 boost::archive::detail::load_non_pointer_type<Archive>::invoke(Archive&,
 T&) [with T = std::vector<boost::shared_ptr<dogen::dia::attribute> >;
 Archive = boost::archive::polymorphic_iarchive]’
 /usr/include/boost/archive/detail/iserializer.hpp:618:24: required from
 â€˜void boost::archive::load(Archive&, T&) [with Archive =
 boost::archive::polymorphic_iarchive; T =
 std::vector<boost::shared_ptr<dogen::dia::attribute> >]’
 /usr/include/boost/archive/polymorphic_iarchive.hpp:119:48: required
 from ‘void boost::archive::polymorphic_iarchive_impl::load_override(const
 boost::serialization::nvp<T>&, int) [with T =
 std::vector<boost::shared_ptr<dogen::dia::attribute> >]’
 /usr/include/boost/archive/detail/interface_iarchive.hpp:60:9: required
 from ‘Archive&
 boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with
 T = const
 boost::serialization::nvp<std::vector<boost::shared_ptr<dogen::dia::attribute>
> >; Archive = boost::archive::polymorphic_iarchive]’
 ../../../projects/dia/src/serialization/composite_ser.cpp:53:8: required
 from ‘void boost::serialization::load(Archive&, dogen::dia::composite&,
 unsigned int) [with Archive = boost::archive::polymorphic_iarchive]’
 ../../../projects/dia/src/serialization/composite_ser.cpp:63:101:
 required from here
 /usr/include/boost/serialization/shared_ptr.hpp:170:9: error: ‘class
 boost::archive::polymorphic_iarchive’ has no member named ‘get_helper’
 ninja: build stopped: subcommand failed.

 Many thanks for your time and for boost serialisation.

 Marco

 note: pls add protocol as required, blocked by track for some reason.

 [1] github.com/DomainDrivenConsulting/dogen
 [2] travis-ci.org/DomainDrivenConsulting/dogen/builds
 [3]
 github.com/DomainDrivenConsulting/dogen/blob/master/projects/dia/src/serialization/composite_ser.cpp

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10727#comment:13>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC