How do I enable C++17 in Xcode (9.4.1) on OSX High Sierra (10.13.5)?
For the language standard argument, try -std=c++17 and -std=c++1z for different compilers, one of them should work.
To get C++17 support, Xcode 9.3+ is needed, requiring at least macOS 10.13 on the build machine.
To run a program in C++ in Mac we have to install Xcode or command-line tools for Xcode. Ways: Hence, there are two options to run a C++ program on Mac. Download and install by using Command Line Tools and using any preferred IDE or Code Editor for writing C or C++ code.
Steps to use C++17 in Xcode (9.4.1) on OSX High Sierra (10.13.5):
Verification steps:
Now when I output __cplusplus, I see 201703, and I am able to compile C++17 features, such as if 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; }
Output:
201703 Program ended with exit code: 0
When using development CocoaPods (writing a C++ library) I had also to update podspec
of this library containing c++ 17 code to make compile host application which included this pod.
So I added these flags to library's podspec
spec.xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", "CLANG_CXX_LIBRARY" => "libc++" }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With