I am able to update gcc on Linux to get -std=c++17 but cannot do the same on Mac. Is there a version of Clang I can update to or some other alternative to get C++17 on my Mac? Please help. Thanks.
On my 10.11 El Capitan, Xcode 7.3.1, clang has been updated to:
Apple LLVM version 7.3.0 (clang-703.0.31)
which is almost equivalent to llvm version 3.8. clang++
hasn't -std=c++17
option, but -std=c++1z
, working well at present, though only supporting some features of C++1z.
For gcc, you can install a very new one by:
brew install gcc --HEAD
which will install gcc-6.1 now, (2016.8). This gcc has limited support for C++17 and can be enabled by -std=c++17
.
some update:
The corresponding llvm version of Apple's clang is not clear recently, should be 3.9+ or 4+. Check this wiki page for more information.
brew install gcc --HEAD
should always work for mac/homebrew, and give you the cutting edge gnu gcc with many experimental features. On the other hand, normal brew install gcc
should install a gcc supporting most c++17 features now.
For the language standard argument, try -std=c++17
and -std=c++1z
for different compilers, one of them should work.