【问题标题】:Do any compilers currently support C++20?目前是否有任何编译器支持 C++20?
【发布时间】:2021-09-23 13:32:08
【问题描述】:

我最近购买了一本名为《开始 C++20》的书。我一直在寻找开始学习 c++,但我现在意识到我找不到可以运行书中代码的编译器,因为我使用的编译器 (xcode) 不支持 c++ 20,因此出现错误。我我想知道是否有任何编译器可以在我的 mac 上运行,支持 c++20。

【问题讨论】:

  • xcode 是 IDE,而不是编译器。三个主要编译器(GCC、MSVC 和 Clang)都支持大部分但不是全部的 C++20。可以找到汇总表here
  • Xcode 12(和 13 Beta)包括支持大多数 C++20 功能的 Clang 版本。您只需手动输入c++20 即可设置C++ Language Dialect
  • Visual Studio 2019(最新版本 16.10,在 Windows 上)是目前唯一带有完全支持 C++20 的编译器的 IDE。 Clang 和 GCC 仍然缺少功能。
  • 请注意,您必须更改默认设置才能启用 C++20 - 我认为这是您的主要问题。转到您的项目设置/“构建设置”选项卡/查找选项“C++ 语言方言”并提供值“-std=c++20”(选项在下拉菜单中不可用)。 Xcode 不提供 C++20 选择,因为对该标准的支持仍然很差。
  • 在过去,将 XCode 称为编译器是有意义的,因为它有自己的补丁 clang 版本,其中未记录的功能差异集来自 clang。但是对于 XCode 13,它似乎是一个以“clang 13”为基础的官方版本。但是标准库还是不一样的。

标签: c++ xcode compiler-errors c++20


【解决方案1】:

gcc 版本 8 及更高版本支持部分 C++20;您可以尝试使用它。

还应该注意的是,Xcode 不是编译器,而是应该使用 clang 作为实际编译器的 IDE。 Clang 目前还支持一些 C++ 20 特性。要使用它们,仍然需要 -std=c++20 标志。

【讨论】:

【解决方案2】:

这里可以找到C++20规范的GCC编译器目前实现的功能支持: GCC Link

但您需要在控制台命令中启用它或将其添加到您的工具链中:“-std=c++20”

【讨论】:

    猜你喜欢
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多