
Provide proper solutions for real-world problems. Increase performance and the ability to work directly with hardware. Increase type safety by providing safer alternatives to earlier unsafe techniques. Improve C++ to facilitate systems and library design, rather than introduce new features useful only to specific applications. Prefer changes that can evolve programming technique. Prefer introducing new features via the standard library, rather than extending the core language. Maintain stability and compatibility with C++98 and possibly with C. The design committee attempted to stick to a number of goals in designing C++11: ( August 2018) ( Learn how and when to remove this template message) Unsourced material may be challenged and removed. Please help improve this section by adding citations to reliable sources. 5 Features originally planned but removed or not included. 3.11 Uniform method for computing the return type of function objects. 3.9 Polymorphic wrappers for function objects. 3.1 Upgrades to standard library components. 2.4.12 Allow garbage collected implementations. 2.4.11 Control and query object alignment. 2.4.10 Allow sizeof to work on members of classes without an explicit object. 2.4.6 Explicitly defaulted special member functions. 2.4 Core language functionality improvements. 2.3 Core language usability enhancements. 2.2 Core language build-time performance enhancements. 2.1.3 Modification to the definition of plain old data. 2.1.2 constexpr – Generalized constant expressions.
2.1.1 Rvalue references and move constructors. 2.1 Core language runtime performance enhancements. The working draft most similar to the published C++11 standard is N3337, dated 16 January 2012 it has only editorial corrections from the C++11 standard. Ĭ++11 was published as ISO/IEC 14882:2011 in September 2011 and is available for a fee. Significant changes were also made to the C++ Standard Library, incorporating most of the C++ Technical Report 1 (TR1) libraries, except the library of mathematical special functions.
Areas of the core language that were significantly improved include multithreading support, generic programming support, uniform initialization, and performance. Īlthough one of the design goals was to prefer changes to the libraries over changes to the core language, C++11 does make several additions to the core language. The name follows the tradition of naming language versions by the publication year of the specification, though it was formerly named C++0x because it was expected to be published before 2010. C++11 replaced the prior version of the C++ standard, called C++03, and was later replaced by C++14. C++11 is a version of the ISO/ IEC 14882 standard for the C++ programming language.