Question

I need to compile some small cpp files so I'd like to do that through the terminal. I'm using Catalina 10.15.5. I found out that macOS has a built-in clang compiler and I can use commands like c++ or g++. It's version:

Apple clang version 11.0.3 (clang-1103.0.32.29)
Target: x86_64-apple-darwin19.5.0
Thread model: posix

But I need to know which c++ version it uses (e.g. c++17, c++11 or even less version). It's really important for my files.

I know I can specify the version like c++ --std=gnu++17 but the question is how to make the compiler to use it by default (without aliases, there must be a command to change it). Or at least how to find out which version does it use right now?

Was it helpful?

Solution

You can find the default version by looking in the manual:

man clang

It states:

The default C++ language standard is gnu++14.

This is basically the same as C++14, but with some GNU specific extensions.

The way to change the default setting when used "standalone" (i.e. without an Xcode project, Makefile or similar) is actually to make a shell alias. There's no clang configuration file where you can change the default - you'll need to recompile the compiler to change it.

Licensed under: CC-BY-SA with attribution
Not affiliated with apple.stackexchange
scroll top