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



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

  1. 它们各自的优缺点是什么?
  2. 为什么Boost和Qt版本甚至存在——它已经在STL中了,为什么要自己做?
  3. 我应该如何选择使用哪一个?

在这里找到你的问题的答案。

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

最新更新