Skip to content
EntityQ1061570· pop 24· linked from 216 articles

Also known as C++ 2011, C++0x, ISO/IEC 14882:2011

C++11 is a version of a joint technical standard, ISO/IEC 14882, by the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC), for the C++ programming language. C++11 replaced the prior version of the C++ standard, named 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.

Official website

Link to the official site · not written by Vinony

Wikidata facts

Subclass of
C++
Named after
2011
Followed by
C++14
Follows
C++03
Show 8 more facts
publication date
2011-09-00
inception
2011-08-12
edition number
2011
number of pages
1338
different from
C11
Sources (3)

via Wikidata · CC0

~79 min read

Encyclopedic overview

56 sections
Contents
  • Design goals
  • Extensions to the C++ core language
  • Core language runtime performance enhancements
  • Rvalue references and move constructors
  • constexpr – Generalized constant expressions
  • Modification to the definition of plain old data
  • Core language build-time performance enhancements
  • Extern template
  • Core language usability enhancements
  • Initializer lists
  • Uniform initialization
  • Type inference
  • Range-based for loop
  • Lambda functions and expressions
  • {{anchor|trailing-return-type}} Alternative function syntax
  • Object construction improvement
  • Explicit overrides and final
  • Null pointer constant and type
  • Strongly typed enumerations
  • Right angle bracket
  • Explicit conversion operators
  • Template aliases
  • Unrestricted unions
  • Core language functionality improvements
  • Variadic templates
  • New string literals
  • User-defined literals
  • Multithreading memory model
  • Thread-local storage
  • Explicitly defaulted special member functions
  • Explicitly deleted functions
  • Type <code>long long int</code>
  • Static assertions
  • Allow <code>sizeof</code> to work on members of classes without an explicit object
  • Control and query object alignment
  • Allow garbage collected implementations
  • Attributes
  • C++ standard library changes
  • Upgrades to standard library components
  • Threading facilities
  • Tuple types
  • Hash tables
  • {{mono|std::array}} and {{mono|std::forward_list}}
  • {{anchor|regex}} Regular expressions
  • General-purpose smart pointers
  • Extensible random number facility
  • Wrapper reference
  • Polymorphic wrappers for function objects
  • Type traits for metaprogramming
  • Uniform method for computing the return type of function objects
  • Improved C compatibility
  • Features originally planned but removed or not included
  • Features removed or deprecated
  • See also
  • References
  • External links

C++11 is a version of a joint technical standard, ISO/IEC 14882, by the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC), for the C++ programming language. C++11 replaced the prior version of the C++ standard, named 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.

Excerpted from Wikipedia’s “C++11” article, available under the CC BY-SA 4.0 licence.