History of C++

Last Updated : 2 Jun, 2026

C++ is a general-purpose programming language that combines the efficiency of low-level programming with the features of high-level programming. It was developed by Bjarne Stroustrup in 1979 at Bell Labs as an extension of the C programming language.

  • Supports both procedural and object-oriented programming.
  • Widely used in software development, game development, operating systems, and competitive programming.

Origin of the Name C++

Initially, the language was called "C with Classes" because it added classes to the C language. In 1983, it was renamed C++. The ++ operator in C is the increment operator, meaning "increase by one." Therefore, C++ can be interpreted as an enhanced version of C.

Evolution of C++

Since its creation in 1979, C++ has undergone several major updates, adding powerful features while maintaining its speed and efficiency.

cpp-history

1979 -> Birth of C with Classes

Bjarne Stroustrup began developing C with Classes, the predecessor of C++. It combined the efficiency of C with object-oriented concepts inspired by Simula.

  • Classes and Objects
  • Inheritance
  • Stronger Type Checking

1983 -> C++ Officially Introduced

The language was officially renamed from C with Classes to C++, representing an enhanced version of C.

  • Function Overloading
  • Virtual Functions
  • References and Const Keyword
  • Single-Line Comments (//)

1985 -> First Commercial Release

The first edition of The C++ Programming Language was published, making C++ widely available to developers.

  • Official documentation released
  • Commercial adoption began
  • Growing industry acceptance

1989 -> Major Enhancements

Several powerful object-oriented features were added, making C++ more suitable for large-scale applications.

  • Protected Members
  • Static Members
  • Multiple Inheritance

1990 -> Reference Manual and Turbo C++

The Annotated C++ Reference Manual was published, and Borland introduced the popular Turbo C++ compiler.

  • Standardized language reference
  • Turbo C++ compiler released
  • Increased developer adoption

1998 -> C++98

The first international C++ standard, ISO/IEC 14882:1998, was released.

  • Reusable containers
  • Generic algorithms
  • Improved productivity

Major Addition: Standard Template Library (STL)

2003 -> C++03

C++03 refined the C++98 standard by fixing issues and improving language consistency.

  • Bug Fixes
  • Language Refinements
  • Value Initialization

2011 -> C++11

C++11 was one of the most significant updates in C++ history, introducing modern programming features.

  • Lambda Expressions
  • Auto Keyword
  • nullptr
  • Rvalue References
  • Variadic Templates
  • Multithreading Support
  • Smart Pointers

2014 -> C++14

C++14 focused on improving and extending features introduced in C++11.

  • Generic Lambdas
  • Variable Templates
  • Binary Literals
  • Improved constexpr Support

2017 -> C++17

C++17 enhanced developer productivity and simplified code writing.

  • Fold Expressions
  • Structured Bindings
  • Inline Variables
  • Filesystem Library

2020 -> C++20

C++20 was a major modernization release that introduced powerful language and library improvements.

  • Concepts
  • Ranges Library
  • Coroutines
  • Modules
  • Three-Way Comparison Operator (<=>)
  • Calendar and Timezone Library

2023 -> C++23

C++23 is the latest published C++ standard, focusing on usability, performance, and library enhancements.

  • Enhanced Standard Library
  • Better Formatting Utilities
  • Additional Ranges Support
  • Improved Language Consistency and Performance

Why Was C++ Created?

Bjarne Stroustrup wanted to combine the speed and efficiency of C with the object-oriented capabilities of the Simula language. The primary goals of C++ were:

  • Preserve the performance of C.
  • Add object-oriented programming features.
  • Improve code reusability and maintainability.
  • Support the development of large-scale software applications.

Summary Table of history of various C++ versions: 

VersionRelease DateMajor changes
C++98 (ISO/IEC 14882:1998)October 1998The first version
C++03 (ISO/IEC 14882:2003)February 2003Introduction of value initialization.
C++11August 2011Introduction of Lambda Expressions, Delegating Constructors, Uniform Initialization Syntax, nullptr, Automatic Type Deduction and decltype, Rvalue References etc.
C++14August 2014Introduction of polymorphic lambdas, digit separators, generalized lambda capture, variable templates, binary integer literals, quoted strings etc.
C++17December 2017Introduction of fold expressions, hexadecimal floating point literals, a u8 character literal, selection statements with initializer, inline variables etc.
C++20

March

2020

This update extends C++ with the facilities to inspect program entities such as variables, enumerations, classes and their members, lambdas and their captures, etc.
C++23Future ReleaseThe next major revision of the C++ standard
Comment