我正试图找到一份官方文档,向我的团队展示我们现在可以很好地使用c++20。但是没有任何文档提到所有编译器都已经完全支持c++20。那么我应该在新项目中使用C++20吗。
我会使用C++参考网站来了解哪些工具链(以及哪些版本(支持什么,这些模块可能不会像你希望的那样得到广泛支持。然而,如果你确切地知道你和你的团队正在使用什么工具,并且你确切地了解你想要标准的哪些部分(以及它涉及的风险(,那么理论上你可以使用标准的某些部分。
就我自己而言,我会尽可能在自己的项目中使用模块,但我觉得在团队中提出还为时过早。
模块(P1103R3(
- GCC 11部分
- Clang 8局部
- MSVC 19.0(与2015年相比(部分、19.10(与2017年相比(仅TS,19.28(与2019年相比(16.8
- Apple Clang 10.0.1部分(Xcode 10.2 10E125,Xcode 10.2.1 10E1001,Xcode 10.3 10G8(
- EDG eccp否
- 英特尔C++否
- IBM XLC++否
- Sun/Oracle C++否
- Embarcadero C++Builder否
- 克雷否
- Nvidia HPC C++(前波特兰集团/PGI(否
- Nvidia nvcc否
参考文献:
https://en.cppreference.com/w/cpp/compiler_support
GCC
C++20核心语言支持状态(从11.0起完成,除部分模块外(
https://gcc.gnu.org/projects/cxx-status.html#cxx20
Clang
https://clang.llvm.org/cxx_status.html#cxx20
https://libcxx.llvm.org/docs/Cxx2aStatus.html
Apple Clang
https://developer.apple.com/documentation/xcode-release-notes
msv
https://github.com/microsoft/STL/wiki/Changelog
https://devblogs.microsoft.com/cppblog/cpp17-20-features-and-fixes-in-vs-2019/
范围
我不确定你是指哪一个,这个?
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf
然后支持:
- GCC 10是
- Clang 13局部
- MSVC 19.29是(与2019年16.10相比(
- Apple Clang否
- EDG eccp否
- 英特尔C++否
- IBM XLC++否
- Sun/Oracle C++否
- Embarcadero C++Builder否
- 克雷否
- Nvidia HPC C++(前波特兰集团/PGI(否
- Nvidia nvcc否