首頁 > 後端開發 > C++ > 為什麼 C 標準容器通常禁止不完整的型別?

為什麼 C 標準容器通常禁止不完整的型別?

Susan Sarandon
發布: 2024-12-21 18:26:11
原創
863 人瀏覽過

Why Do C   Standard Containers Typically Forbid Incomplete Types?

C 容器禁止不完整類型的基本原理

在 C 程式設計世界中,容器是組織和操作資料的基本資料結構。然而,C 容器的一個獨特特徵是它們厭惡不完整的類型。為什麼會這樣呢?

答案在於 C 的歷史演變。在早期,標準範本庫 (STL) 實作很難處理類型不完整的容器。為了保持穩定性和向後相容性,標準化委員會決定在 C 標準中徹底禁止此類容器。

這種限制對於防止遞歸資料結構特別有效。它還確保現有的 STL 實現可以繼續按預期運行,而不會引入任何不可預見的問題。

但是,對不完整類型的禁止也引起了一些批評。它限制了某些高階資料結構的實現,並將受益於 C 標準未來修訂版的重新審視。

雖然標準容器仍然不完整的類型厭惡,但像 boost::container 背後的庫設計者已經採取了主動創建自己的容器,不施加此限制。這項決定允許 C 編程具有更大的多功能性和靈活性。

更新:

隨著 C 17 的出現,標準 C 庫中的某些容器已修改為允許不完整的類型。然而,這並不是一個普遍的變化,標準中的大多數容器的一般禁令仍然存在。

以上是為什麼 C 標準容器通常禁止不完整的型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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