The Wayback Machine - https://web.archive.org/web/20120814072602/http://en.cppreference.com/w/cpp/language/history
Namespaces
Variants
Views
Actions

History of C++

From cppreference.com
 
 
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements
Jump statements
Functions
function declaration
lambda function declaration
function template
inline specifier
exception specifications (deprecated)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
decltype specifier (C++11)
Specifiers
cv specifiers
storage duration specifiers
constexpr specifier (C++11)
auto specifier (C++11)
alignas specifier (C++11)
Initialization
Literals
Expressions
alternative representations
Utilities
Types
typedef declaration
type alias declaration (C++11)
attributes (C++11)
Casts
implicit conversions
const_cast conversion
static_cast conversion
dynamic_cast conversion
reinterpret_cast conversion
C-style and functional cast
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
class template
function template
template specialization
parameter packs (C++11)
Miscellaneous
Inline assembly
 

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

  1. New features: value initialization
  2. Defect Reports fixed: 125 defects, including defect 69, which made std::vector contiguous.

This TR is a C++ library extension, which adds the following to the C++ standard library:

  1. 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.
  2. 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.

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.

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

  1. 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)
  2. 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
  3. From TR1: all of TR1 except Special Functions.
  4. From Boost: The thread library, exception_ptr, error_code and error_condition, iterator improvements (std::begin, std::end, std::next, std::prev)
  5. From C: C-style Unicode conversion functions
  6. 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.

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

  1. From boost: filesystem (shipped by Visual Studio since 2011), networking
  • C++1x

The next revision of the C++ standard is open for proposals

[edit] External links