The Clang compiler team has completed support for the entire C++11 standard. Clang is part of the LLVM Project which provides a “collection of modular and reusable compiler and toolchain technologies.” Clang itself is based on LLVM components and features fast compilation time, and useful diagnostic messages. The multiyear effort to add full C++11 support is now complete making it suitable for developers looking to incorporate the new features of the standard into their projects.
This update to Clang adds the remaining details needed to support C++11:
- attributes – Provides ability to annotate various peices of code (functions, variables, blocks, etc)
- inheriting constructors – Allows a derived class to have the same constructors as the base
- thread local variables – Provides the ability for threads in multithreaded applications to have unique data on a per thread basis
Looking ahead, the Clang team will begin implementing the features introduced in the C++1y standard (formal name not announced). The measure of completeness for these features can be found on the project's CXX page which is regularly updated.
Clang is not the only open source compiler supporting C++11, with the GCC project still actively developing its implementation. The Apache project maintains a list of several compilers (commercial and otherwise) with their corresponding level of support for C+11.