std::shared_ptr
C 標準庫包含數組的std::unique_ptr 特化,它可以從其析構函數中正確地呼叫delete[]。然而,std::shared_ptr 顯然不存在類似的專門化。此行為需要使用者手動提供明確呼叫delete[]的刪除器。
這種遺漏是疏忽還是有意為之?
缺席原因
C 庫工作小組 (LWG) 已考慮 std::shared_ptr
具體來說,std::shared_ptr
近期進展
非正式地,該主題再次在LWG,並且已經開發出原型。雖然此功能有可能成為有價值的工具,但它是否包含在標準中仍然不確定。
目前狀態
從 C 11 開始,std:: Shared_ptr
更新 (2017)
C 17 標準包括支援對於 std::shared_ptr 中的陣列(shared_ptr::shared_ptr() 的情況 3)。
以上是為什麼 C 中沒有 std::shared_ptr 專業化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!