2

Boost::Serialization 内置了对boost::shared_ptr<>.

有没有办法使用这种支持std::tr1::shared_ptr<>呢?
是否可以从std::tr1::shared_ptr<>to 转换boost::shared_ptr<>

4

1 回答 1

3

由于实现不同,因此无法进行强制转换。此外,使用从 get() 返回的值在另一种 shared_ptr 类型上创建一个 shared_ptr 类型的实例将无法正常工作,因为引用计数将在代码中的不同点变为 0,这会导致在最后一个对象之前删除该对象使用它。我不是 boost::serialization 的专家,但由于 std::tr1::shared_ptr<> 和 boost::shared_ptr<> 的接口几乎相同,你很可能只需克隆 boost 的序列化/反序列化代码::shared_ptr<> 并且只需要替换 shared_ptr 的命名空间。

于 2010-11-04T07:54:59.690 回答