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

Sep*_*ram 3 c++ qt boost stl smart-pointers

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

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

zku*_*nov 8

看看这里的回答您的问题.


edA*_*a-y 7

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