
Whereas LLVM 15.0 was just released this week with many new compiler options, an enormous change simply merged for subsequent spring’s LLVM/Clang 16.0 launch: C++17 with GNU extensions is now the default C++ and ObjectiveC++ model.
GNU++17 (C++17 with GNU extensions) is now the default C++ customary focused if no different model is explicitly set for the compiler. It is a bump from GNU++14 as the present C++ default as much as LLVM/Clang 15.
For C++ codebases not at the moment appropriate with C++17 and simply counting on the defaults thus far will now have to set -std=gnu++14 or older to retain compatibility with the prior default.
Clang’s C++17 help has been steady for some time and in reality Apple with their DriverKit already had a change in upstream LLVM to make use of GNU++17 by default moderately than GNU++14 — in the present day’s change is simply dropping that Apple DriverKit examine.
The changeover of the default C++ model for LLVM Clang occurred with this commit following the LLVM discourse discussion over the then-proposed change.