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

标签 c++ macos clang c++17 darwin

我可以在 Linux 上更新 gcc 以获取 -std=c++17,但在 Mac 上不能这样做。
是否有我可以更新到的 Clang 版本或其他替代方法来在我的 Mac 上获取 C++ 17?

请帮忙。
谢谢。

最佳答案

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

Apple LLVM version 7.3.0 (clang-703.0.31)

几乎等同于 llvm 3.8 版。 clang++没有-std=c++17选项,但是-std=c++1z,目前运行良好,虽然只有支持C++1z的一些特性。

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

brew install gcc --HEAD

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


一些更新:

最近苹果clang对应的llvm版本不清楚,应该是3.9+或者4+。查看 this wiki page了解更多信息。

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

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

关于c++ - 如何在 Mac 上启用 C++17?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39091173/

相关文章:

objective-c - Xcode 4.4.1 & 核心情节 : Apple LLVM compiler error when compiling Core Plot demo apps

C++ 将带有指针的对象添加到 Vector 中

c++ - 如何在 MFC 对话框按钮上设置管理权限图标?

python - gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

macos - 有什么方法可以使用 Swift 在 Mac OS 中捕获全局按键

objective-c - Mac OS X 应用程序中的 Bash 脚本,从系统调用自定义应用程序

c++ - 未优化的 clang++ 代码在普通的 main() 中生成不需要的 "movl $0, -4(%rbp)"

c - 我可以使用什么预定义的宏来检测 clang?

c++ - 是否有一种完全符合标准的方法可以使编译器将文件的确切(二进制)内容粘贴到源文件中?

c# - 如何将 native C/C++ *.dll 连接到 IIS 中托管的 WCF C#?