首頁 > 後端開發 > C++ > 主體

為什麼 `std::shared_ptr` 沒有 C 中陣列的專門化?

DDD
發布: 2024-11-20 16:18:16
原創
791 人瀏覽過

Why Doesn't `std::shared_ptr` Have a Specialization for Arrays in C  ?

std::shared_ptr 的特化

在C 中,std::unique_ptr 有一個用於處理數組的模板特化,它在其析構函數中適當地調用delete[]。然而,std::shared_ptr 不存在這樣的專門化。

為什麼缺席?

最初,疏忽可能是由於時間限制,因為 LWG (C委員會)還有許多其他緊迫事務。然而,缺乏正式提案也起了一定作用。

近期進展

非正式的討論使這個問題重新回到了最前沿,並且原型已經實現。然而,正式提案仍在等待中。一些 LWG 成員認為對 std::shared_ptr 的陣列支援將是一個有價值的補充。

目前狀態

從 C 14 開始,沒有內建的專門化對於 std::shared_ptr 。要處理數組,必須提供一個呼叫 delete[] 的自訂刪除器。

更新

2014 年,提出了一份技術規範 (TS) 草案來添加數組支援 std::shared_ptr。該提案已在 C 17 中實現。

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

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