我需要 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/