繼本月初 GCC 開發者討論將 GCC 編譯器默認 C++ 標準切換為 C++20(在未另行指定時)之後,該變更現已正式實施。當前合併的變更將默認編譯器標準從 C++17/GNU++17 調整為 C++20(準確説是 GNU++20 dialect),適用於未另行指定的 C++ 代碼編譯場景。
GCC 開發人員發現他們自身的代碼庫尚未完全兼容 C++20,但他們本週也一直在修復這些問題,以確保 GCC 16 能夠與 C++20 默認標準完美兼容。
日前提交的這個變更實現了默認使用 C++20 (GNU++20) 而非 C++17 的轉變。GCC Git 倉庫中仍在繼續修復編譯器代碼庫中存在的 C++20 相關問題。
儘管 GCC 16.1 穩定版已進入第三階段開發,預計將於三四月份發佈,但 C++20 默認規範的變更已獲批准,最新的 GCC Git 代碼庫也已針對這一現代默認規範進行了全面更新。
對於尚未準備好支持 C++20 且目前未指定“-std=c++17”或類似選項的 C++ 代碼庫,此默認規範的變更可能會導致一些構建問題。至少對於那些定期使用 GCC Git 進行測試的開源項目而言,還有幾個月的時間來確保其代碼庫符合 C++20 標準,或者在其構建系統中指定“-std=c++17”。
回顧歷史,早在 2020 年 GCC 11 的默認規範就已從 C++14 更改為 C++17。