c++11 shared_ptr + Boost::序列化

标签 c++ serialization boost shared-ptr

我需要 std::shared_ptr 的 Boost::Serialization 特化。

我正在编写一个通过 Boost::Asio 发送对象的程序,其中许多对象在内部使用 shared_ptrs。使用变通方法仅序列化它们所指的对象是非常不舒服的。

我一直在尝试自己制作,查看为 Boost::shared_ptr 提供的实现,但我不了解应该如何处理这些对象。

更改 Boost::shared_ptr 序列化中的命名空间使得序列化指针成为可能,但反序列化对我不起作用。

作为最后的手段,我可​​以(也许应该)切换到对我的对象使用 std::unique_ptr,因为目前看来他们拥有它们,但这会导致我遇到同样的问题,只是与 unique_ptr。

最佳答案

你说你在内部使用 std::shared_ptr。所以为什么你不使用 boost::shared_ptr 代替它,它完全受 boost::serialization 支持并且具有与 std::相同的功能: shared_ptr?

关于c++11 shared_ptr + Boost::序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12891328/

相关文章:

serialization - 当 TypeNameHandling 为 Auto 时,为什么 Json.NET 不包含根对象的 $type ?

c# - System.Runtime.Serialization.InvalidDataContractException Windows Phone 8

c++ - BOOST_FOREACH : is there a trick to avoid the all-caps spelling?

c++ - 访问声明只能应用于基类成员

c# - 使用 JSON.NET 反序列化和序列化字典 <string, object>

c++ - boost 异步服务器类 : Debug Assertion Failed and Empty Buffer

c++ - 为什么在使用 boost::function 调用函数对象时不需要类实例

c++ - 'double'和 'double'类型的无效操作数

c++ - const <type>& foo() 与 <type> foo()

php - 为什么 phpseclib 生成不兼容的证书?