【问题标题】:Difference between boost::shared_ptr and std::shared_ptr from the standard <memory> file标准 <memory> 文件中 boost::shared_ptr 和 std::shared_ptr 之间的区别
【发布时间】:2011-06-21 14:23:24
【问题描述】:

我想知道标准&lt;memory&gt; 文件中的boost::shared_ptr 和std::shared_ptr 之间是否有任何区别。

【问题讨论】:

  • 这取决于你的实现。
  • @robert 它们可以互换使用吗?我正在尝试实现这个stackoverflow.com/questions/3559412/…
  • @P.R. - std::shared_ptr 是 tr1::shared_ptr 的 C++0x 形式,boost 的 shared_ptr 应该表现相同:stackoverflow.com/questions/3831572/…
  • 谢谢:)。我会继续进行一些测试。
  • 鉴于这个问题,@Birryree,我想这个问题真的是问 C++0x 是否对 shared_ptr 进行了任何更改,或者它是否与 TR1 中的相同。

标签: c++ boost c++11


【解决方案1】:

std::shared_ptr 是 tr1::shared_ptr 的 C++0x 形式,boost 的 boost::shared_ptr 应该表现相同。

但是,std::shared_ptr 在符合 C++0x 标准的实现中,应该/可能在 shared_ptr 类上具有更方便的行为,如以下链接所述:

shared_ptr 是一个引用计数指针,它的行为尽可能像常规 C++ 数据指针。 TR1 实现缺少某些指针特性,例如别名和指针算法,但 C++0x 版本会添加这些。

虽然粗略一瞥,我没有看到operator+ 和shared_ptr 类型上的类似算术运算。

【讨论】:

  • 嗨,我对所有这些链接和附加信息感到有些困惑。所以,总而言之,您的意思是std::shared_ptr 和boost::shared_ptr 的行为相同。对吗?
猜你喜欢
  • 2013-04-16
  • 1970-01-01
  • 2011-04-19
  • 2013-06-12
  • 2013-08-24
  • 2012-09-01
  • 1970-01-01
  • 2013-07-21
相关资源
最近更新 更多