為什麼 C 容器中禁止使用不完整類型
問題:
問題:為什麼C標準不允許不完整類型的容器
答案:C 標準化委員會在這方面的決定源於歷史原因。
初步測試表明,即使是簡單的容器範例具有不完整類型的函數在所有 STL 實作中的功能並不一致。由於缺乏明確性,委員會宣布 STL 容器處理不完整類型的行為是未定義的,從而將此禁令擴展到標準庫的其餘部分。
做出此決定是為了避免使現有的函式庫實現失效。不支援追溯不完整的類型。
儘管最初有禁止,但委員會圖書館工作組主席Matt Austern 承認未來有可能放寬這一限制雖然當前標準中仍然存在禁令,但boost::container 展示了允許不完整類型的容器的可行性,為需要的情況提供了解決方案。以上是為什麼 C 容器不能容納不完整的型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!