首頁 >後端開發 >C++ >為什麼 `std::shared_ptr` 沒有專門用於陣列刪除?

為什麼 `std::shared_ptr` 沒有專門用於陣列刪除?

Linda Hamilton
Linda Hamilton原創
2024-11-12 21:22:02477瀏覽

Why Doesn't `std::shared_ptr` Have a Specialization for Array Deletion?

為什麼std::shared_ptr未特化

與std::unique_ptr 相比,std::unique_ptr 在數組的析構函式中適當地呼叫delete[],std::shared_ptr 缺乏類似的特化。因此,使用者必須手動提供一個正確釋放數組的刪除器。

監督的原因

雖然缺少std::shared_ptr專業化可能看起來是一個疏忽,它是由幾個因素造成的:

  • 缺乏爭議:與引發爭議的std::copy_if 不同,std::shared_ptr 的缺席並沒有引起重大爭論。
  • 錯過機會: 儘管 C 委員會內部進行了討論,但尚未提交正式提案來解決 std::shared_ptr 中對數組支援的需求。

近期進展

人們對 std::shared_ptr 的數組支援重新產生了興趣,從而導致了技術規範 (TS) 草案的創建。這個TS(n4077.html)提出了一個將shared_ptr的功能擴展到陣列的機制。

當前狀態和未來前景

草案TS已被批准作為C的一部分17,為 std::shared_ptr 中的數組處理提供官方支援。此功能增強可實現無縫數組管理並簡化程式設計師的記憶體分配任務。

以上是為什麼 `std::shared_ptr` 沒有專門用於陣列刪除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn