C++11 is the name of the C++ standard, approved in 2011. It replaces the previous C++03 standard, adding various core language changes and fixes, and an improved and expanded standard library. C++11 has been commonly referred to as C++0x, because it was originally expected to be published before 2010.
The ISO standard, 14882:2011, is available from the ISO website, for a fee. The final draft was approved by the C++ working group on the 25th of March 2011. The publicly available draft closest to C++11 is N3337, which has only editorial differences from the full standard.
In August 2014, a minor update to the standard was approved, which is henceforth referred to as C++14. This is currently undergoing editorial revision and when published will supersede the 2011 version of the standard.
- Status of C++0x Language Features in Compilers, complements of the Apache Stdcxx Wiki
- Wikipedia's C++11 Article (may be slightly out of date)
- Bjarne Stroustrup's C++0x FAQ
- C++ Standards Committee Page
- The just::thread C++0x thread support and atomic operations library
- Standard C++ Homepage
- The C++ Programming Language (4th Edition)
New and Changed Features
- Lambda expressions
- Care and Feeding for R-value references and move support:
- Technical definition of R-value references.
- Should I return objects by R-value reference?
- What are move semantics
- How do I use move support for function parameters?
- Type-traits for movable types.
- State of standard objects after movement.
- Declare move and copy assignment when explicitly needed with one function.
- Move with noexcept.
- Move only with temporaries or an explicit statement.
- Uniform initialization/initializer lists:
- Perfect forwarding and R-value references.
- What are the new rules for PODs?
- What are rvalues, lvalues, xvalues, glvalues, and prvalues?
- C++11 Smart Pointers
- Changed C++ idioms in C++11:
- What breaking changes are introduced in C++11?