The International Organization for Standardization's (ISO) C++ group, Working Group 21 (WG21), has agreed upon the finalized version of 'C++20', the first major update to the 35 year-old programming language since C++17 from 2017.
"On Friday September 4, C++20's DIS (Draft International Standard) ballot ended, and it passed unanimously," said Herb Sutter, a Microsoft engineer and long-time chair of WG21 C++ ISO committee.
"This means that C++20 has now received final technical approval and is done with ISO balloting, and we expect it to be formally published toward the end of 2020 after we finish a final round of ISO editorial work."
SEE: Hiring Kit: Python developer (TechRepublic Premium)
The 2020 release of C++ is huge by historical standards. Sutter said it "will be C++'s largest release since C++11", meaning it's bigger than any of the past three releases, which happen every three years. It's also the first version that has been standardized.
C++ was created by Danish computer scientist Bjarne Stroustrup and released 35 years ago, in 1985. The language was critical for Microsoft to build Windows, which was released to consumers in the same year. These days Microsoft is exploring Mozilla-developed Rust to replace legacy Windows code written in C and C++ because of Rust's memory safety qualities.
C++, favored for being a fast language, has risen in popularity in recent years and is widely used in computer games development because of its usefulness in instructing hardware.
Important C++ compilers, such as Microsoft Visual Studio, GNU Compiler Collection (GCC), and Clang, support C++17.
Two of the most important features coming to C++20 are 'modules' and 'coroutines'.
Modules, which was led by Google's Richard Smith, stands in for header files and helps isolate the effects of macros while supporting larger builds. As Sutter noted recently, C++20 marks the "first time in about 35 years that C++ has added a new feature where users can define a named encapsulation boundary."
"Until now, we have had three such language features that let programmers create their own Words of Power by (a) giving a user-defined name to (b) something whose implementation is hidden. They are: the variable (which encapsulates the current value), the function (which encapsulates code and behavior), and the class (which encapsulates both to deliver a bunch of state and functions together)," he wrote.
Coroutines represents a generalization of a function. "Regular functions always start at the beginning and exit at the end, whereas coroutines can also suspend the execution to be resumed later at the point where they were left off," C++ contributors explain in a proposal for coroutines.