首頁 >後端開發 >C++ >為什麼 C 容器不能容納不完整的型別?

為什麼 C 容器不能容納不完整的型別?

Linda Hamilton
Linda Hamilton原創
2024-12-04 07:26:10217瀏覽

Why Can't C   Containers Hold Incomplete Types?

為什麼 C 容器中禁止使用不完整類型

問題:

問題:

為什麼C標準不允許不完整類型的容器

答案:

C 標準化委員會在這方面的決定源於歷史原因。

初步測試表明,即使是簡單的容器範例具有不完整類型的函數在所有 STL 實作中的功能並不一致。由於缺乏明確性,委員會宣布 STL 容器處理不完整類型的行為是未定義的,從而將此禁令擴展到標準庫的其餘部分。

做出此決定是為了避免使現有的函式庫實現失效。不支援追溯不完整的類型。

儘管最初有禁止,但委員會圖書館工作組主席Matt Austern 承認未來有可能放寬這一限制雖然當前標準中仍然存在禁令,但boost::container 展示了允許不完整類型的容器的可行性,為需要的情況提供了解決方案。

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

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