History of C++
| This section is incomplete |
Contents |
[edit] Early C++
- 1979: C with Classes first implemented
- 1982: C with Classes reference manual published
- 1984: C84 implemented, reference manual published
- 1985: Cfront 1.0. The C++ Programming Language, 1st edition
- 1986: Cfront 1.1
- 1987: Cfront 1.2, first GNU C++ release
- 1989: Cfront 2.0
- 1990: The Annotated C++ Reference Manual
- 1991: Cfront 3.0, The C++ Programming Language, 2nd edition
[edit] Standard C++
- 1990 ANSI C++ Committee founded
- 1991 ISO C++ Committee founded
- 1998 C++98 (ISO/IEC 14882:1998, The C++ Programming Language, 3rd edition
- 1999 Boost founded by the committee members as a breeding ground for new standard library facilities.
- 2003 C++03 (ISO/IEC 14882:2003)
This was a minor revision, intended to be little more than a technical corrigendum
- New features: value initialization
- Defect Reports fixed: 125 defects, including defect 69, which made std::vector contiguous.
- 2006 Performance TR (ISO/IEC TR 18015:2006) (ISO Store) (2006 draft)
- 2007 Library extension TR1 (ISO/IEC TR 19768:2007) (ISO store) (2005 draft).
This TR is a C++ library extension, which adds the following to the C++ standard library:
- From Boost: Reference wrapper, Smart pointers, Member function, Result Of, Bind, Function, Type Traits, Random, Mathematical Special Functions, Tuple, Array, Unordered Containers (including Hash), and Regular Expressions.
- From C99: mathematical functions from math.h that were new in C99, blank character class, Floating-point environment, hexfloat I/O Manipulator, fixed-size integral types, the long long type, va_copy, the snprintf() and vscanf() families of functions, and the C99 conversion specifies for printf() and scanf() families of functions.
All of TR1 except for the special functions was included in C++11, with minor changes.
- 2010 Mathematical special functions TR (ISO/IEC 29124:2010) (ISO Store) (2010 draft)
This TR 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, Newmann functions, beta function, and Riemann zeta function.
- 2011 C++11 (ISO/IEC 14882:2011) (ISO Store) (ANSI Store) (Post-publication draft).
A large number of changes were introduced to both standardize existing practices and improve the abstractions available to the C++ programmers
- New language features: auto and decltype, defaulted and deleted functions, final and override, trailing return type, rvalue references, move constructors/move assignment, scoped enums, constexpr and literal types, list initialization, delegating and inherited constructors, brace-or-equal initializers, nullptr, long long, char16_t and char32_t, type aliases, variadic templates, generalized unions, generalized PODs, Unicode string literals, user-defined literals, attributes, lambda expressions, noexcept, alignof and alignas, multithreaded memory model, thread-local storage, GC interface, range for (based on a Boost library), static assertions (based on a Boost library)
- New library features: atomic operations library, emplace() and other use of rvalue references throughout all parts of the existing library, std::initializer_list, stateful and scoped allocators, forward_list, chrono library, ratio library, new algorithms, Unicode conversion facets
- From TR1: all of TR1 except Special Functions.
- From Boost: The thread library, exception_ptr, error_code and error_condition, iterator improvements (std::begin, std::end, std::next, std::prev)
- From C: C-style Unicode conversion functions
- Defect Reports fixed: 363 defects resolved by the 2008 draft and 322 defects resolved after. Notable defects include 530, which made std::basic_string objects contiguous.
- 2011 Decimal floating-point TR (ISO/IEC TR 24733:2011) (ISO Store) (2009 draft)
This TR implements the decimal floating-point types from IEEE 754-2008 Standard for Floating-Point Arithmetic: std::decimal::decimal32, std::decimal::decimal64, and std::decimal::decimal128.
[edit] Future development
- Library extensions TR2
The next set of library extensions is open for proposals
- From boost: filesystem (shipped by Visual Studio since 2011), networking
- C++1x
The next revision of the C++ standard is open for proposals

