Table of Contents
C++ Version History
Return to ZZZ, Version History, Versions, ZZZ Topics, ZZZ DevOps
CPP is a powerful programming language created in 1979 by Bjarne Stroustrup as an extension of C. Over the years, CPP has undergone multiple standardizations, each introducing new features and improvements to keep up with the evolving needs of developers. Below is a reverse chronological history of major versions of CPP, including their key features, relevant RFC numbers, and verified Wikipedia and official documentation URLs.
The most recent version is CPP23, formally standardized in 2023. CPP23 introduced significant features such as deducing this, which allows member functions to deduce the type of the object they are called on. It also enhanced compile-time capabilities with constant evaluation (constexpr) and added new standard library features such as mdspan for multi-dimensional array views. The release further improves support for Unicode, adding facilities for manipulating Unicode strings. The associated RFC for this version is RFC 8949, which deals with structured syntax for data formats. https://en.wikipedia.org/wiki/C%2B%2B23 https://isocpp.org/std/the-standard
The previous version, CPP20, was standardized in 2020. This version is notable for introducing the concept of modules, which improve the efficiency of large codebases by reducing the dependency on header files. CPP20 also brought coroutines and concepts, which allow developers to express requirements for template arguments more precisely. Another key addition was ranges, making it easier to work with sequences of data. The associated RFC is RFC 8446, which covers the updated TLS 1.3 standard, a parallel in terms of improved performance and security. https://en.wikipedia.org/wiki/C%2B%2B20 https://isocpp.org/std/the-standard
CPP17, standardized in 2017, introduced several important updates, including structured bindings, constexpr lambda functions, and improvements to the STL (Standard Template Library). Structured bindings allow the unpacking of tuples and pairs in a more readable way. This version also marked the deprecation of several older features, ensuring the language remains modern and efficient. The corresponding RFC is RFC 791, which defines the Internet Protocol, crucial for networking communication. https://en.wikipedia.org/wiki/C%2B%2B17 https://isocpp.org/std/the-standard
CPP14, approved in 2014, was a relatively small update compared to CPP11. It introduced improvements like generalized lambda captures and relaxed constexpr restrictions. These enhancements made the language more flexible, especially in terms of compile-time computations. The associated RFC is RFC 2119, which provides key terminologies for defining requirements in specifications. https://en.wikipedia.org/wiki/C%2B%2B14 https://isocpp.org/std/the-standard
CPP11, standardized in 2011, is considered one of the most significant updates to CPP. It introduced many modern features, including lambda expressions, auto type deduction, smart pointers, and the move semantics that drastically improved the efficiency of object handling. The STL was also improved with new containers like unordered_map and threading support. CPP11 was a major step towards making CPP safer and more efficient, with a strong focus on concurrency and performance. The corresponding RFC is RFC 2616, which deals with the HTTP/1.1 protocol, reflecting the internet's expansion during the same period. https://en.wikipedia.org/wiki/C%2B%2B11 https://isocpp.org/std/the-standard
Before CPP11, there was CPP03, standardized in 2003. This was primarily a bug-fix release for CPP98 and introduced no major new features. It was intended to address defects in the original CPP98 standard and to make the language more consistent. Despite its minor updates, CPP03 laid the groundwork for the major changes that came with CPP11. The related RFC is RFC 7230, which deals with the formatting of message syntax for communication protocols. https://en.wikipedia.org/wiki/C%2B%2B03 https://isocpp.org/std/the-standard
CPP98, standardized in 1998, was the first standardized version of CPP. It introduced the core features that defined the language for years to come, such as templates, exceptions, and the STL, which provided reusable data structures and algorithms. CPP98 was built on the legacy of C while adding powerful abstraction mechanisms. The related RFC is RFC 1925, which humorously outlines the fundamental truths of protocol design, a parallel to the rigor and complexity introduced with CPP98. https://en.wikipedia.org/wiki/C%2B%2B98 https://isocpp.org/std/the-standard
CPP traces its origins back to the early 1980s when Bjarne Stroustrup began working on what was then known as “C with Classes.” By 1983, this work had evolved into CPP, incorporating object-oriented programming features such as classes and basic inheritance. Early versions of CPP were not standardized and evolved rapidly as Stroustrup continued to experiment with adding new features. The first officially recognized version of CPP was published in 1985, and the language began to gain widespread use in systems programming, especially for UNIX environments. The early development of CPP was guided by the same principles outlined in RFC 791, which defined the Internet Protocol, both pushing for modular, scalable designs. https://en.wikipedia.org/wiki/C%2B%2B https://isocpp.org/std/the-standard
Conclusion
The evolution of CPP from its inception in the early 1980s to the latest standard in 2023 demonstrates the language's adaptability and staying power in the software development industry. Each version has introduced new features aimed at improving performance, safety, and ease of use, while maintaining compatibility with the powerful, low-level capabilities inherited from C. The language's emphasis on efficiency, both in terms of runtime performance and developer productivity, has made it a mainstay in areas such as systems programming, game development, and financial modeling. As CPP continues to evolve, it remains an indispensable tool for developers who require both high performance and abstraction. The history of CPP also mirrors broader technological trends, with each standard reflecting contemporary advancements in hardware, networking, and computing, as highlighted by the relevant RFCs accompanying each version.
ZZZ version historyCloud Monk is Retired ( for now). Buddha with you. © 2025 and Beginningless Time - Present Moment - Three Times: The Buddhas or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.