非命名空間範圍中的顯式專業化
儘管在Clang 中編譯成功,但給定的程式碼無法在GCC 中編譯。根據 C 標準 ([temp.expl.spec]),可以在可以定義對應主模板的任何作用域中聲音明顯式特化。
此行為似乎是 GCC 中的一個錯誤。根據 CWG 727,[temp.expl.spec] 中有關明確專業化的規則已被修改,以允許在任何相關範圍內進行此類聲明。
明確專業化範圍
原始標準規定,應在包含專用範本的命名空間中聲明顯式專用化。但是,目前標準允許在可以定義主範本的任何範圍內進行明確專業化:
GCC 未能遵守此更新規則構成漏洞。該問題已被確定為 Bug 85282,目前由 GCC 開發團隊追蹤。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3