如何在Mac上启用C++ 17?

The*_*aka 23 c++ macos darwin clang c++17

我能够在Linux上更新gcc以获得-std = c ++ 17,但在Mac上不能这样做.是否有一个版本的Clang我可以更新或在我的Mac上获得C++ 17的其他替代方案?请帮忙.谢谢.

hal*_*elf 21

在我的10.11 El Capitan,Xcode 7.3.1上,clang已更新为:

Apple LLVM version 7.3.0 (clang-703.0.31)
Run Code Online (Sandbox Code Playgroud)

这几乎相当于llvm版本3.8.虽然只支持C++ 1z的一些功能,但是目前clang++还没有-std=c++17选择-std=c++1z.

对于gcc,您可以通过以下方式安装一个非常新的:

brew install gcc --HEAD
Run Code Online (Sandbox Code Playgroud)

现在将安装gcc-6.1,(2016.8).这个gcc对C++ 17的支持有限,可以通过-std=c++17.


一些更新:

相应的llvm版Apple's clang最近不清楚,应该是3.9+或4+.查看此Wiki页面以获取更多信息.

brew install gcc --HEAD应始终适用于mac/homebrew,并为您提供具有许多实验性功能的尖端gnu gcc.另一方面,正常brew install gcc应该安装一个支持大多数c ++ 17功能的gcc.

对于语言标准参数,尝试-std=c++17-std=c++1z为不同的编译器,其中一个应该工作.

  • 谢谢.我尝试过并且工作过.不得不在Darwin构建中制作CXX = g ++ - 而不是g ++. (2认同)

Har*_*ain 9

Apple 的 Clang 已经支持最新的 C++ 版本,但默认为旧版本。

您所要做的就是在 while 执行--std=c++17之后添加g++,执行您的代码g++ --std=c++17 <filename>.cpp

如果您使用代码运行器执行,请执行以下操作:

  1. Code>Preferences>Settings在设置类型顶部的搜索栏中code-runner.executormap在此输入图像描述

  2. 选择Edit in settings.json,打开一个Json文件文件 在此输入图像描述

  3. 从此文件中更改以下示例中 settings.json带有 key 的行cpp line:8"cpp": "cd $dir && g++ --std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

4. 重启VSCode


DBr*_*own 5

v17 标准现在默认随Xcode 10 一起提供,提供标准和变体风格。

通过构建设置:

CLANG_CXX_LANGUAGE_STANDARD:C++17/GNU++17

命令行界面:

-std=c++17 部分支持

-std=gnu++17


小智 2

如果存储库存在一些复杂性,您可以从源安装 gcc(一点也不复杂)。

mac os X的安装过程,这里是linux的安装过程。希望能帮助到你。