The Clang C/C++ compiler front-end to LLVM is now declared "feature complete" against the C++11 ISO standard.
With a SVN/Git commit
made today, the C++11 support within the LLVM/Clang compiler is now deemed "feature complete" with all of the new features to the ISO-approved C++ language update having been implemented.
The last of the C++11 features to be implemented were support for inheriting constructors, and C11/C++11 thread_local. C++11 support has been a very active work-in-progress item for the past several Clang releases. It's been nearly complete
for several months but only with the latest LLVM/Clang 3.3 SVN code are all of the features officially implemented.
By Intel developers there has also been a project forming that supports automatically converting C++ code into C++11
to take advantage of new features.
Finishing off this support comes at a time when many open-source projects are beginning to use C++11
. LLVM developers have also looked at using some C++11 features
within the compiler itself.
For those unfamiliar with the C++11 language features, there is a Wikipedia article
and the ISO.org specification
Meanwhile, in terms of support for GCC (the GNU Compiler Collection) supporting C++11, it's nearly complete. The GCC C++11 state is reflected on this web-page
. Most functionality of C++11 is implemented within the recent release of GCC 4.8, but still to be complete is minimal support for garbage collection and reachability-based leak detection, some data-dependency ordering, and a few other small items.
will be the first compiler release with full C++11 support and its release is expected in June
. Besides finishing up the C++11 support, LLVM 3.3 and Clang 3.3 also provides dramatic performance improvements
, better Intel AVX2 support
, the AMD R600 GPU LLVM back-end
, enhancements to its loop vectorizer
(and enabled by default for -O3
), and numerous other new features and optimizations.