Paul Krill
Editor at Large

C++ 20 spec finalized, C++ 23 spec begins

news
Feb 24, 20202 mins
C++Programming LanguagesSoftware Development

C++ upgrade due in 2023 will prioritize standard library modules, coroutines, executors, reflection, pattern matching, and contracts

start-finish road signs point in opposite directions / stages / order / sequencing
Credit: Gustavo Frazao / Getty Images

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 prioritize 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 inject.
  • 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.