C++11 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++11 replaced the prior version of the C++ standard, called C++03, and was later replaced by C++14. 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. Although 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. Areas of the core language that were significantly improved include multithreading support, generic programming support, uniform initialization, and performance. 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. C++11 was published as ISO/IEC 14882:2011 in September 2011 and is available for a fee. 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. Design goals The design committee attempted to stick to a number of goals in designing C++11: Maintain stability and compatibility with C++98 and possibly with C Prefer introducing new features via the standard library, rather than extending the core language Prefer changes that can evolve programming technique Improve C++ to facilitate systems and library design, rather than introduce new features useful only to specific applications Increase type safety by providing safer alternatives to earlier unsafe techniques Increase performance and the ability to work directly with hardware Provide proper solutions for real-world problems Implement zero-overhead principle (further support needed by some utilities must be used only if the utility is used) Make C++ easy to teach and to learn without removing any utility needed by expert programmers Attention to beginners is considered important, because most computer programmers will always be such, and because many beginners never widen their knowledge, limiting themselves to work in aspects of the language in which they specialize. Extensions to the C++ core language One function of the C++ committee is the development of the language core. Areas of the core language that were significantly improved include multithreading support, generic programming support, uniform initialization, and performance. Core language runtime performance enhancements These language features primarily exist to provide some kind of performance benefit, either of memory or of computational speed. Rvalue