如何在OSX High Sierra(10.13.5)的Xcode(9.4.1)中启用C ++ 17?
答案 0 :(得分:10)
在OSX High Sierra(10.13.5)的Xcode(9.4.1)中使用C ++ 17的步骤:
验证步骤:
现在,当我输出__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++"
}