17611538698
info@21cto.com

GCC 16 将默认使用 C++20 标准

编程语言 0 423 2025-11-29 06:32:10
图片

导读:C++语言正式进入C++20的标准时代,新的编码方式开启。

C++ 世界正悄然发生着翻天覆地的变化。

作为现代级 C++ 开发核心的强大编译器,GCC 正将发布的C++16 版本中将 C++20 作为默认标准。

如果你自认为已经掌握了 C++,那么请做好心理准备。

这是因为,这不仅仅是一次技术上的调整,而是一次足以撼动整个代码库、工具,甚至影响我们编写和思考 C++ 的方式的重大变革。

对于大多数人来说,这种变化就像走进一个一夜之间家具被重新摆放过的房间——既熟悉又陌生。为什么这次很重要?因为 C++20 引入了变革性的特性,通过模块、概念、协程等,重新定义了当今优秀 C++ 的面貌。

本文将和大家共同探讨 GCC 16 提议的默认开关的意义,解释为何它姗姗来迟,以及作为一名开发者,无论是新手还是资深开发者——如何才能在这个不断发展的环境中生存并取得成功。

正式切换

回顾过往历史,GCC 11 的默认规范是在 2020 年从 C++14 更改为 C++17

在本月初期,GCC 开发者们共同讨论并评审通过,在未另行指定的情况下, GCC 编译器的默认C++ 标准将正式切换为 C++20。

今天,这一变更已经正式生效。

目前,当你编译 C++ 代码时,默认使用 C++20(更准确地说是 GNU++20 方言)而非 C++17/GNU++17 的变更,并已合并到 GCC 版本中。

GCC开发者发现他们自身的代码库尚未完全兼容 C++20,但他们本周也一直在修复这些问题,以确保 GCC 16 能够与 C++20 默认标准完美兼容。 

从11月19号的变更来看,已经实现了默认使用 C++20 (GNU++20), 而不再是 C++17 。今天,GCC Git 仓库中仍在继续修复编译器代码库中存在的 C++20 相关问题。

GCC 现在默认使用 C++20。

尽管GCC 16.1 稳定版已进入第三阶段开发,但由于 C++20 默认规范的变更已获批准,最新的 GCC Git 代码已针对这一现代默认规范进行了全面更新。

对于尚未准备好支持 C++20 且目前未指定“-std=c++17”或类似选项的 C++ 代码库,此默认规范的变更可能会导致一些构建问题。至少对于那些定期使用 GCC Git 进行测试的开源项目而言,还有几个月的时间来确保其代码库符合 C++20 标准,或者在其构建系统中指定“-std=c++17”。

结语

可以确定的是,如果更换为GCC20,新的警告会开始出现,行为也会发生变化——无论代码库大小,都需要进行相应的调整。

GCC 的这一举措,将鼓励开发者更多地采用现代的编程惯用法。

作者:洛逸

参考:

https://www.phoronix.com/news/GCC-16-Now-CPP20-Default

https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=004438857554f47eb5491d59b067e56fdacf0e74

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信