apple llvm 9.0不能使用flag c ++ 17

Fau*_*urs 7 xcode llvm clang++ c++17

当我尝试c ++ 17的一些功能时,我在命令行中构建我的代码如下:

llvm-g++ -std=c++17 main.cpp 
Run Code Online (Sandbox Code Playgroud)

但它失败了.我有:

error: invalid value 'c++17' in '-std=c++17'
Run Code Online (Sandbox Code Playgroud)

我的llvm-g ++的版本是:

[wjy@wjy-mba] cpp$ llvm-g++ -v
Apple LLVM version 9.0.0 (clang-900.0.37)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Run Code Online (Sandbox Code Playgroud)

同时,我可以在Xcode中构建我的代码(使用c ++ 17). Xcode设置

小智 5

-std=c++17在Clang 5.0.0中添加(最近发布 - 本月早些时候 - 请参阅http://releases.llvm.org/5.0.0/tools/clang/docs/ReleaseNotes.html).

此页面https://en.wikipedia.org/wiki/Xcode#Latest_versions似乎相信Xcode 9.0仍在使用LLVM/Clang 4.0版本.这与您遇到的错误一致.


小智 1

我相信您正在寻找标志 -std=c++1z