cpp/language/history

Early C++
This book described the language as designed, including some features that were not yet implemented. It served as the de-facto standard until the ISO.
 * 1979: C with Classes first implemented
 * 1) New features:, , es, separate compilation, , s, type checking of function arguments, , , , s, s,  same as , call-function and return-function (synchronization features, not in C++)
 * 2) Libraries: the concurrent task library (not in C++)
 * 1982: C with Classes reference manual published
 * 1984: C84 implemented, reference manual published
 * 1985: Cfront 1.0
 * 1) New features:, function and , ,  and  operators, , scope resolution operator
 * 2) Library additions: complex number,  (AT&T version), I/O stream
 * 1985: The C++ Programming Language, 1st edition
 * 1986: The "whatis?" paper documenting the remaining design goals, including multiple inheritance, exception handling, and templates.
 * 1987: C++ support in GCC 1.15.3
 * 1989: Cfront 2.0
 * 1) New features:, , , type-safe linkage, es,  and  member functions, class-specific  and
 * 2) Library additions: I/O manipulators
 * 1990: The Annotated C++ Reference Manual
 * 1) New features: s,, ,
 * 1991: Cfront 3.0
 * 1991: The C++ Programming Language, 2nd edition

Standard C++

 * 1990: ANSI C++ Committee founded
 * 1991: ISO C++ Committee founded
 * 1992: STL implemented in C++

C++98/03 period
This was a minor revision, intended to be little more than a technical corrigendum. This revision introduces the definition of.
 * 1998: C++98 (ISO/IEC 14882:1998)
 * 1) New features: RTTI, , s, , , declarations in conditions, , s, export
 * 2) Library additions: locales,, , , templatized string, I/O streams, and complex numbers.
 * 3) Based on STL: containers, algorithms, iterators, function objects
 * 1998: The C++ Programming Language, 3rd edition
 * 1999: Boost founded by the committee members to produce new high-quality candidate libraries for the standard.
 * 2003: C++03 (ISO/IEC 14882:2003)

This TR discussed the costs of various C++ abstractions, provided implementation guidance, discussed use of C++ in embedded systems and introduced interface to C's ISO/IEC TR 18037:2008. This TR is a C++ library extension, which adds the following to the C++ standard library: All of TR1 except for the special functions was included in C++11, with minor changes. This international standard is a C++ standard library extension, which adds the special functions that were part of TR1, but were not included in C++11: elliptic integrals, exponential integral, Laguerre polynomials, Legendre polynomials, Hermite polynomials, Bessel functions, Neumann functions, beta function, and Riemann zeta function. This standard was merged into C++17.
 * 2006: Performance TR (ISO/IEC TR 18015:2006) (ISO Store) (2006 draft)
 * 2007: Library extension TR1 (ISO/IEC TR 19768:2007) (ISO store).
 * 1) From Boost:, Smart pointers, Member function, , , , Type Traits, Random, Mathematical Special Functions, , , Unordered Containers (including ), and Regular Expressions.
 * 2) From C99: mathematical functions from c/numeric/math that were new in C99, blank character class, Floating-point environment,  I/O Manipulator, fixed-size integral types, the  type, va_copy, the  and  families of functions, and the C99 conversion specifies for  and  families of functions.
 * 2010: Mathematical special functions (ISO/IEC 29124:2010) (ISO Store)

C++11 period

 * 2011: C++11 (ISO/IEC 14882:2011) (ISO Store).

Main Article: C++11

A large number of changes were introduced to both standardize existing practices and improve the abstractions available to the C++ programmers

This TR implements the decimal floating-point types from IEEE 754-2008 Standard for Floating-Point Arithmetic:, , and.
 * 2011: Decimal floating-point TR (ISO/IEC TR 24733:2011) (ISO Store)
 * 2012: The Standard C++ Foundation founded
 * 2013: The C++ Programming Language, 4th edition

C++14 period

 * 2014: C++14 (ISO Store) (ANSI Store) (2014 final draft)

Main Article: C++14

Minor revision of the C++ standard

This TS is an experimental C++ library extension that specifies a filesystem library based on boost.filesystem V3 (with some modifications and extensions). This TS was merged into C++17. This TS standardizes parallel and vector-parallel API for all standard library algorithms, as well as adds new algorithms such as, , or. This TS was merged into C++17. This TS extends the C++ core language with synchronized and atomic blocks, as well as transaction-safe functions, which implement transactional memory semantics. This TS adds several new components to the C++ standard library:, , , , , , polymorphic allocators, and variable templates for type traits. This TS was merged into C++17. This TS extends the C++ core language with concepts (named type requirements) and constraints (limits on the types allowed in template, function, and variable declarations), which aids metaprogramming and simplifies template instantiation diagnostics, see concepts. This TS was merged into C++20, with some omissions. This TS extends the C++ library to include several extensions to std, std and std, and atomic smart pointers.
 * 2015: Filesystem library TS (ISO/IEC TS 18822:2015) (ISO Store)
 * 2015: Extensions for Parallelism TS (ISO/IEC TS 19570:2015) (ISO Store)
 * 2015: Extensions for Transactional Memory TS (ISO/IEC TS 19841:2015) (ISO Store) ([)
 * 2015: Extensions for Library Fundamentals TS (ISO/IEC TS 19568:2015) (ISO Store)
 * 2015: Extensions for Concepts TS (ISO/IEC TS 19217:2015) (ISO Store)
 * 2016: Extensions for Concurrency TS (ISO/IEC TS 19571:2016) (ISO Store)

C++17 period

 * 2017: C++17 (ISO Store) (ANSI Store)

Main Article: C++17

The major revision of the C++ standard after C++11

This TS extends the C++ library to include ranges, a new, more powerful, abstraction to replace iterator pairs, along with range views, sentinel ranges, projections for on-the-fly transformations, new iterator adaptors and algorithms. This extension finally makes it possible to sort a vector with This TS extends the C++ core language and the standard library to include stackless coroutines (resumable functions). This adds the keywords, , and. This TS extends the C++ library to include TCP/IP networking based on boost.asio. This TS extends the C++ core language to include modules. This adds the special identifiers, , and reintroduces the keyword with a new meaning. This TS extends the C++ library to include two new execution policies ( and ), additional parallel algorithms such as or, task blocks for forking and joining parallel tasks, SIMD types and operations on those types.
 * 2017: Extensions for Ranges TS (ISO/IEC TS 21425:2017) (ISO Store)
 * 2017: Extensions for Coroutines TS (ISO/IEC TS 22277:2017) (ISO Store)
 * 2018: Extensions for Networking TS (ISO/IEC TS 19216:2018) (ISO Store)
 * 2018: Extensions for modules TS (ISO/IEC TS 21544:2018) (ISO Store)
 * 2018: Extensions for Parallelism version 2 TS (ISO/IEC TS 19570:2018) (ISO Store)

C++20 period

 * 2020: C++20 (ISO Store) (final draft )

Main Article: C++20

The major revision of the C++ standard after C++17

This TS extends C++ with the facilities to inspect program entities such as variables, enumerations, classes and their members, lambdas and their captures, etc.
 * 2021: Reflection TS (ISO/IEC TS 23619:2021) (ISO store)

Future development

 * Experimental technical specifications
 * 20:  latest draft

Main Article: C++23

The next major revision of the C++ standard