GCC 7 & Clang Are Nearing Full C++1z/C++17 Support
While C++17 hasn't even been officially released yet, this specification also known as C++1z, has nearly all of the expected features implemented in the GCC 7 and Clang compiler releases.
C++17/C++1z features had begun landing in the GNU Compiler Collection since GCC 5 while some functionality even dates back to GCC 4.8, but the GCC 7 SVN/Git code implements a majority of the new language features. Support for inline variables was the latest feature to be added while many other new language features were previously added to GCC 7 development that's been open since April.
Of the expected C++17 features, there are just a few not yet implemented: extension to aggregate initialization, declaring non-type template parameters with auto, structured bindings, make extension specifications be part of the type system, and reworking inheriting constructors. That's it, at least for the features expected so far to make it into this next C++ standard.
Those wishing to see an overview of the current C++17 support in the GCC code compiler can visit the status page.
Over in the LLVM/Clang space, the C++1z status can be seen here. A bulk of the features landed with Clang 3.9 that debuted back in August. Clang too just has a few extensions left and presumably most of those will get done in time for the Clang 4.0 release in early 2017.
With either C++ compiler, the new language features can be exposed via the -std=c++1z switch.
C++17/C++1z features had begun landing in the GNU Compiler Collection since GCC 5 while some functionality even dates back to GCC 4.8, but the GCC 7 SVN/Git code implements a majority of the new language features. Support for inline variables was the latest feature to be added while many other new language features were previously added to GCC 7 development that's been open since April.
Of the expected C++17 features, there are just a few not yet implemented: extension to aggregate initialization, declaring non-type template parameters with auto, structured bindings, make extension specifications be part of the type system, and reworking inheriting constructors. That's it, at least for the features expected so far to make it into this next C++ standard.
Those wishing to see an overview of the current C++17 support in the GCC code compiler can visit the status page.
Over in the LLVM/Clang space, the C++1z status can be seen here. A bulk of the features landed with Clang 3.9 that debuted back in August. Clang too just has a few extensions left and presumably most of those will get done in time for the Clang 4.0 release in early 2017.
With either C++ compiler, the new language features can be exposed via the -std=c++1z switch.
7 Comments