Namespaces
Variants
Actions

History of C++

From cppreference.com
< cpp‎ | language
 
 
C++ language
General topics
Flow control
Conditional execution statements
if
Iteration statements (loops)
for
range-for (C++11)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications (until C++17*)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
explicit (C++11)
static

Special member functions
Templates
Miscellaneous
History of C++
 

Contents

[edit] Early C++

  • 1979: C with Classes first implemented
  1. New features: classes, member functions, derived classes, separate compilation, public and private access control, friends, type checking of function arguments, default arguments, inline functions, overloaded assignment operator, constructors, destructors, f() same as f(void), 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: virtual functions, function and operator overloading, references, new and delete operators, the keyword const, scope resolution operator
  2. Library additions: complex number, string (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: multiple inheritance, pointers to members, protected access, type-safe linkage, abstract classes, static and