【问题标题】:Is it the C++20 module and range is completely available in all compilers ( MSVC, CLang, GCC)是不是 C++20 模块和范围在所有编译器(MSVC、CLang、GCC)中都完全可用
【发布时间】:2021-08-02 10:58:43
【问题描述】:

我正在努力寻找一份官方文档向我的团队展示我们现在可以很好地使用 c++20。但是没有文件提到所有编译器已经完全支持c++20。所以我应该为新项目使用 C++20。

【问题讨论】:

  • C++20 支持在大多数编译器中仍然是部分的和实验性的。 (甚至标准本身仍在通过缺陷报告进行修改......)
  • gcc 几乎完成了所有 C++20 核心语言功能,而 msvc 几乎完成了所有 C++20 库功能。可以从here获取三大编译器的最新进展。

标签: gcc visual-c++ clang c++20


【解决方案1】:

我会使用 C++ 参考网站来查看哪些工具链(以及哪些版本)支持什么,这些模块可能不像您希望的那样得到广泛支持。但是,如果您确切地知道您和您的团队正在使用哪些工具,并且您确切地知道您想要标准的哪些部分(以及它涉及的风险),那么理论上您可以使用标准的某些部分。

就我自己而言,我将尽可能在自己的项目中使用模块,但我觉得在团队中提出它还为时过早。

模块(P1103R3)

  • GCC 11 部分
  • Clang 8 部分
  • MSVC 19.0 (VS 2015) 部分、19.10 (VS 2017) 仅限TS、19.28 (VS 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++(前 Portland Group/PGI)
  • Nvidia nvcc

参考资料:

https://en.cppreference.com/w/cpp/compiler_support

海合会

C++20 核心语言支持状态(截至 11.0 完成,部分模块除外)

https://gcc.gnu.org/projects/cxx-status.html#cxx20

叮当

https://clang.llvm.org/cxx_status.html#cxx20

https://libcxx.llvm.org/docs/Cxx2aStatus.html

苹果叮当

https://developer.apple.com/documentation/xcode-release-notes

MSVS

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 (VS 2019 16.10)
  • Apple Clang
  • EDG eccp
  • 英特尔 C++
  • IBM XLC++
  • Sun/Oracle C++
  • Embarcadero C++ Builder
  • 克雷 没有
  • Nvidia HPC C++(前 Portland Group/PGI)
  • Nvidia nvcc

【讨论】:

    猜你喜欢
    • 2017-10-17
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多