C++ 20 receives final technical approval

0
15


Having attained final technical approval from ISO on September 4, C++ 20 is expected to be formally published toward the end of this year, introducing new features such as modules and coroutines.

for systems programming, C++ remains a vital language. C++ was even found to be the fastest-growing language in the , where it ranks in fourth place behind C, Java, and Python. Tiobe cites the specification as one of the factors giving the language a boost.

New capabilities in C++ 20 include:

  • Modules, enabling programmers to use modular components.
  • Concepts, used to specify template requirements and support generic programming. Concepts promise to improve code quality.
  • A synchronization library, for better support of fine-grained hardware control.
  • Compile-time computation improvements.
  • Coroutines, which generalize subroutines for use in nonpreemptive multi-tasking. Standardized support for coroutines in the standard library is still lacking, however. This support is eyed for .
  • Ranges, which provide components to deal with ranges of elements.
  • Feature test macros, a set of macros that correspond to language and library features from C++ 11 or later.
  • Precalculated hash values in lookup.
  • Expansion statements to enable compile-time repetition of a statement for each element of a tuple, array, class, parameter pack, or range.
  • Monadic operations for std::optionalcode.
  • Implicit creation of objects for low-level manipulation.
  • Improved context-sensitive recognition of import and module to aid non-compiler tools to determine build dependencies.
  • New .

A contracts capability that had been expected in C++ 20, to specify pre-conditions, post-conditions, and assertions, has been removed. Contracts is now marked as a  item, although it may not make it into that release, either.

Copyright © 2020 IDG Communications, Inc.

LEAVE A REPLY