Max*_*x0u 5 c++ macos gcc g++ clang++
我无法使用-std = c ++ 17进行编译,我得到了:
error: invalid value 'c++17' in '-std=c++17'
Run Code Online (Sandbox Code Playgroud)
但是我更新了Xcode和clang。
我的Clang版本是:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
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)
我加载了最新的标头,如可选的,我必须做
#include <experimental/optional>
Run Code Online (Sandbox Code Playgroud)
代替
#include <optional>
Run Code Online (Sandbox Code Playgroud)
Xcode带来了自己完整的工具链,包括标题和实际的编译器。
Apple LLVM version 9.0.0 (clang-900.0.39.2)(随Xcode 9.2一起提供)不支持使用该标志,-std=c++17因为该标志太旧了。可选标头仅包含在文件夹下experimental/。这就是为什么你需要#include <experimental/optional>
为了使用Xcode 9.2随附的编译器在c ++ 17支持下编译程序,您需要使用-std=c++1z标志。
Xcode 9.3将附带Apple LLVM version 9.1.0 (clang-902.0.30)支持该-std=c++17标志。但是,optional头文件到今天仍在experimental/子目录下。在测试版中,这可能会更改。
| 归档时间: |
|
| 查看次数: |
4905 次 |
| 最近记录: |