如何在Mac OSX的Xcode中启用C ++ 17

时间:2018-07-11 14:35:32

标签: c++ xcode c++17 macos-high-sierra xcode9.4

如何在OSX High Sierra(10.13.5)的Xcode(9.4.1)中启用C ++ 17?

2 个答案:

答案 0 :(得分:10)

在OSX High Sierra(10.13.5)的Xcode(9.4.1)中使用C ++ 17的步骤:

  1. 用Xcode打开现有文件或创建一个新的C ++项目
  2. 单击“显示项目导航器”按钮。它位于Xcode窗口的左上部分,就在“最小化/最大化/关闭”窗口按钮的下方。它是最左侧的图标,看起来像一个文件夹。
  3. 单击“构建设置”,然后向下滚动以查找和展开“ Apple LLVM 9.0-语言-C ++”部分
  4. 将“ C ++语言方言”组合框选择更改为“ C ++ 17 [-std = c ++ 17]”

Xcode Build Settings

验证步骤:

现在,当我输出__cplusplus时,我看到了201703,并且能够编译C ++ 17功能,例如constexpr。

template<class T>
int compute(T x) {
    if constexpr( supportsAPI(T{}) ) {
        // only gets compiled if the condition is true
        return x.Method();
    } else {
        return 0;
    }
}

int main(){
    cout << __cplusplus << endl;
    return 0;
}

输出:

201703
Program ended with exit code: 0

答案 1 :(得分:1)

使用开发CocoaPods(编写C ++库)时,我还必须更新包含c ++ 17代码的该库的podspec,以编译包含此pod的主机应用程序。

所以我将这些标志添加到库的podspec

  spec.xcconfig = { 
    "CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
    "CLANG_CXX_LIBRARY" => "libc++"
  }