C++ 20 spec finalised, C++ 23 spec begins
Upgrade will prioritise standard library modules, coroutines, executors, reflection, pattern matching, and contracts
25 February 2020 | 0
The C++ language is moving forward on two different fronts. With the C++ 20 specification done and awaiting final approval, the ISO committee behind the language has begun plotting a successor C++ 23 release, which would prioritise a modular standard library.
The ISO C++ Committee earlier this month voted to send the Draft
International Standard of C++ 20 out for final approval and publication,
due later this year. Highlights of C++ 20 include
modules, concepts, coroutines, and ranges. C++ 20 was deemed
feature-complete last year. C++ 23 is due to be finalized in 2023.
The priorities for C++ 23 include:
- Finishing work begun in C++ 20 to support standard library modules
and coroutines. The former will enable programmers to use the standard
library through modules, while the latter will enable them to easily use
coroutines with futures and other common types out of the box.
- The addition of executors, and a networking library that relies on executors, to the standard library.
- Reflection including introspection to query the program,
compile-time programming to manipulate results, and generation to
- Pattern matching to improve type safety and make it easier to write type-safe code.
- A redesign of contracts.
Recent additions to C++ 20 include improving the context-sensitive recognition of “import” and “module” to allow non-compiler tools such as build systems to determine build dependencies. Several rangified algorithms were added, as well. Issues to the open core language and library were resolved, also.
IDG News Service