QSharedPointer VS std :: tr1 :: shared_ptr VS boost :: tr1 :: shared_ptr

时间:2011-04-13 04:32:49

标签: c++ qt boost stl smart-pointers

这三个是分别来自Qt,STL和Boost的共享指针类。它们的功能似乎相同,所以我很困惑:

  1. 每个人的优点和缺点是什么?
  2. 为什么Boost和Qt版本甚至存在 - 它已经在STL中,为什么要自己制作?
  3. 我该如何选择使用哪一个?

2 个答案:

答案 0 :(得分:8)

查看here以获取问题的答案。

答案 1 :(得分:7)

  1. QSharedPointer需要Qt,shared_ptr是标准且可移植的
  2. std::shared_ptrboost::shared_ptr的标准替代品(也就是说,首先是升级版,它已成为标准版)
  3. 除非您有需要它的Qt类,否则不要使用QSharedPointer。如果你有一个tr1或C ++ 0x实现使用std::shared_ptr,否则使用boost::shared_ptr