如果让我在QScopedPointer和boost::scoped_ptr之间进行选择,在以下情况下哪一个最好:
1. QScopedPointer<QObject> Vs boost::scoped_ptr<QObject>
2. QScopedPointer<QtContainer> Vs boost::scoped_ptr<QtContainer>
3. QScopedPointer::data() Vs boost::scoped_ptr::get()发布于 2011-08-19 03:53:45
它们做的基本上是一样的事情。Qt版本似乎具有带着指针(QScopedPointer::take())潜逃的能力,这允许你将所有权转移给其他人。使用scoped_ptr不能做到这一点,但您可以将这两种类型互换。
boost::scoped_ptr和QScopedPointer也是明确不可复制的。
QScopedPointer确实有一种机制,允许您向指针传递一个“删除器”。这实际上是给定类的公共静态成员,因此QScopedPointer仍然只是一个指针的大小。这确实意味着QScopedPointer的类型必须包括删除器的类型。
它们都被C++0x中的std::unqiue_ptr废弃了。
https://stackoverflow.com/questions/7113137
复制相似问题