微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是 C++20 模块吗?范围在所有编译器MSVC、CLang、GCC中都完全可用 参考:海湾合作委员会苹果叮当声MSVS

如何解决是 C++20 模块吗?范围在所有编译器MSVC、CLang、GCC中都完全可用 参考:海湾合作委员会苹果叮当声MSVS

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

解决方法

我会使用 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++(前波特兰集团/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++(前波特兰集团/PGI)
  • Nvidia nvcc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。