首頁 > 後端開發 > C++ > 為什麼 C 標準函式庫中沒有「std::shared_ptr」?

為什麼 C 標準函式庫中沒有「std::shared_ptr」?

Mary-Kate Olsen
發布: 2024-11-10 04:07:53
原創
518 人瀏覽過

Why isn't there a `std::shared_ptr` in the C   standard library?

深入探究std::shared_ptr 的缺失

在C 標準庫中,存在一個用於數組的std ::unique_ptr 的專用版本std::unique_ptr 可以在其析構函式中正確呼叫delete[]。然而, std::shared_ptr 缺乏這樣的專業化,因此需要使用像問題中展示的自訂刪除器。

缺乏專業化的理由

缺少std::shared_ptr ;源自多種因素的綜合作用:

  • LWG 討論: 庫工作組(LWG) 考慮了這個想法,但最終因圍繞針對shared_ptr.
  • 缺乏正式提案:儘管進行了非正式討論,但尚未向LWG 提交關於創建std::shared_ptr 的正式提案;.

現狀與未來展望

儘管存在歷史性的猶豫,但最近的討論重新點燃了LWG 成員的興趣。雖然原型已經實施,但正式提案仍懸而未決。 std::shared_ptr 的可行性和最終採用仍不確定。

即將開發

open-std.org 草案 TS(技術規範)提出對 std::shared_ptr 的數組支援。如果採用該 TS,將引入 std::shared_ptr 。作為 C 標準的一部分。

C 17 更新

草案 TS 現已合併到 C 17 中,為 std::shared_ptr。詳情請參考shared_ptr::shared_ptr()的情況3。

以上是為什麼 C 標準函式庫中沒有「std::shared_ptr」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板