可用的C 智慧指標實作及其比較
C 03
std::auto_ptr:未來的C 標準中已棄用。有限的垃圾收集、所有權複雜性以及無法在 STL 容器中使用。
std::auto_ptr_ref:- 不是真正的智慧指標;與 std::auto_ptr 結合使用以允許複製和賦值。
- C 11
-
std::unique_ptr: 替換 std::auto_ptr。修正 std::auto_ptr 的弱點,允許使用陣列、左值保護以及在 STL 容器中使用。
std::shared_ptr: 引用計數智慧指標。支援別名和指針算術。
std::weak_ptr:- 對 std::shared_ptr 擁有的物件的非擁有參考。防止無限循環引用計數。
- Boost
-
boost::shared_ptr: 流行的共享引用計數智慧指標。高性能和多功能性。
-
boost::weak_ptr: 對 boost::shared_ptr 的非擁有參考。
-
boost::scoped_ptr:簡單的智慧指標替代boost::shared_ptr 且更少
- boost::intrusive_ptr:
boost::intrusive_ptr:
用於建立您自己的智慧指標相容類別的自訂智慧指標。
boost::shared_array:
共用智慧指標陣列。 -
boost::scoped_array:
陣列的不可複製智慧指標。 Qt
- QPointer: 衍生性指標QObject 和類型。已棄用。
- QSharedDataPointer: 與 boost::intrusive_ptr 相當的強智能指針,具有線程安全性。
- QExplicitlySharedDataPointer: QSharedDataPointer 2.0 版,具有增強功能控制
QSharedPointer: 原子引用指標QWeakPointer: 對a 的非擁有引用QSharedPointer.QScopedPointer: 基於擁有者異常指標」的單pedped_ptr,安全代碼和相容性。
以上是我應該選擇哪個 C 智慧指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!