C with Classes

  • Initially, in 1979, Bjarne Stroustrup developed the predecessor of C++ which was called "C with Classes".
  • This "C with Classes" which extends the C language had new features like classes, member functions, inline functions, derived classes, default arguments, constructors, destructors, etc which are basic building blocks for Object-oriented programming.

C++

  • After 3 years, in 1982, he began to develop the successor of "C with Classes" and it was named C++.

Cfront 1.0

  • In 1985, a standalone compiler for C++ was developed by Stroustrup and it was called Cfront.
  • New features like virtual functions, function and operator overloading, references, efficient way for memory allocation using new/delete operators were included in the language.
  • In addition to the language, the library was developed which includes iostream for input/output operations, strings and complex.
  • The 1st edition of  "The C++ Programming Language" book was released, which became a De facto standard as there was no official standard until now.

Cfront 2.0

  • In 1989, Cfront 2.0 was released which introduced new features like multiple inheritances, static member functions, const member functions, protected members, abstract classes, etc to the  Language.
  • In 1990, "The Annotated C++ Reference Manual" was published which laid the foundation for the features which were introduced in the future Standards.
  • In 1991, the 2nd edition of "The C++ Programming Language" book was published, and Cfront 3.0 was released.

Standard C++

To know more about C++ Standardization check out our next article on C++ Standardization.

Conclusion:

If you are a beginner and want to learn C++ as your first programming language, then you can start your journey with us.

C++ is not a difficult language if you learn it in a proper way, always use the latest materials that cover the latest features of the language.

Learning a programming language is to become good at developing new systems and also to maintain the legacy systems. After learning C++, it is easy to learn similar programming languages like Java, C# or other interpreted languages like Python.

International Organization for Standardization

  • In 1991, the "International Organization for Standardization" (ISO) C++ committee was formed.
  • ISO is responsible for organizing conferences to discuss standardization of the language, to accept the proposals for new features of the language.
  • As a result of this Standardization,  the language doesn't belong to a single vendor.
  • All the vendors try to implement the standards provided by ISO.

C++98

  • As the name indicates, this ISO standard was ratified and published for C++ programming language in 1998 as  ISO/IEC 14882:1998.
  • New features like the dynamic cast,  other cast operators,  bool type, template instantiations, mutable, etc were introduced.
  • New features like containers, algorithms, iterators were added to the STL.
  • In the same year, in 1998, the 3rd edition of "The C++ Programming Language" book was published.

C++03

  • In 2003, there was a minor version of the C++ Language released by ISO as ISO/IEC 14882:2003.
  • A new feature like value initialization was introduced and other bugs were fixed.

C++11

  • In 2011, the second major version of the language which had larger changes was released as ISO/IEC 14882:2011
  • New features like auto, nullptr, scoped enums, constexpr, decimal floating-point, and many more were introduced.
  • New Standard Library features like general-purpose smart pointers, threading facilities, hash tables, regular expressions etc were introduced.

Since 2011, C++ is on a 3-year release cycle where a new standard will be released every 3 years

C++14

  • In 2014, another major version of the language was released as ISO/IEC 14882:2014.
  • New features like relaxed constexpr restrictions, return type deduction for functions, variable templates, binary literals etc were introduced.
  • New Standard Library features like shared mutexes and locking,  Standard user-defined literals, Tuple addressing through types, etc were introduced.

C++17

  • In 2017, another major version of the language was released as ISO/IEC 14882:2017.
  • New features like nested namespaces, fold expressions, if constexpr, inline variables, and many more were introduced to the language.

C++20

  • The most recent version of the C++ was introduced in 2020, as ISO/IEC 14882:2020.
  • With lots of features introduced (we will discuss in detail later in the course), modern C++ is being made much easier to program and develop software.
  • The upcoming C++ standard is going to be C++23 with lot of other improvements and new features.

Conclusion

This article was a brief introduction to the C++ standards and not a detailed explanation of the features introduced. For now, don't worry about understanding the features.  We will introduce all the necessary concepts for learning C++ in the upcoming articles and detail every feature in the advanced sections.