Boost :: Serialization内置了对boost::shared_ptr<>
的支持。
是否有办法对std::tr1::shared_ptr<>
使用此支持?
是否可以从std::tr1::shared_ptr<>
投射到boost::shared_ptr<>
?
答案 0 :(得分:3)
由于实现方式不同,无法进行转换。另外使用另一个shared_ptr类型的get()返回的值创建一个shared_ptr类型的实例将无法正常工作,因为引用计数将在代码中的不同点处变为0,从而导致在最后一个之前删除对象使用它。 我不是boost :: serialization的专家,而是作为std :: tr1 :: shared_ptr&lt;&gt;的接口。和boost :: shared_ptr&lt;&gt;几乎相同,你很可能只是克隆boost :: shared_ptr&lt;&gt;的序列化/反序列化代码。并且只需要替换shared_ptr的名称空间。