beet-2 wrote
Robert,
there seems to be a misunderstanding here, and I apoligize for not having been more clear before. Here is the history again:
- I have converted a client-server application from using boost::shared_ptr to std::shared_ptr
- The server now needs to serialize a ** std::shared_ptr ** and the client wants to receive a ** std::shared_ptr **
- No boost::shared_ptr is involved anymore, and the problem is NOT the conversion from a boost::shared_ptr - based archive to a std::shared_ptr archive
- Serialization of std::shared_ptr works with Boost 1.58, but isn't supported by Boost 1.53
- I need to make it work with older versions of Boost than 1.58, so I need to "teach" 1.53 to (de-)serialize a std::shared_ptr
I can't see why you can't just handle use versioning of serializable classes as described in the manual. struct myclass { std::shared_ptr<Sometype> m_x; // used to use boost::shared_ptr<Sometype> ... template<class Archive> serialize(Archive & ar, const unsigned int version){ if(version < 1){ boost::shared_ptr t; ar & t; m_x = t; } else { ar & m_x; }; }; BOOST_SERIALIZATION_CLASS_VERSION(myclass, 1); OK - I see the problem, matching up the matching pointers. Look at how boost::shared_ptr and std::shared_ptr are implemented via serialization helper and look at the decimation on serialization helper. This might work for you Robert Ramey -- View this message in context: http://boost.2283326.n4.nabble.com/serialization-std-shared-ptr-with-Boost-1... Sent from the Boost - Users mailing list archive at Nabble.com.