Menu
C++ 20 receives final technical approval

C++ 20 receives final technical approval

C++ language upgrade featuring modules and coroutines is set to be released before the end of the year

Credit: Dreamstime

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.

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

New capabilities in C++ 20 include modules, enabling programmers to use modular components and concepts, used to specify template requirements and support generic programming - concepts promise to improve code quality.

Other key features span a synchronisation library, for better support of fine-grained hardware control; compile-time computation improvements and coroutines, which generalise subroutines for use in nonpreemptive multi-tasking. Standardised support for coroutines in the standard library is still lacking, however. This support is eyed for C++ 23.

Delving deeper, further offerings centre around 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 and pre-calculated hash values in look-up, in addition to expansion statements to enable compile-time repetition of a statement for each element of a tuple, array, class, parameter pack, or range.

Rounding off the list of new features are 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 and new rangified algorithms.

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 C++ 23 item, although it may not make it into that release, either.


Follow Us

Join the newsletter!

Or

Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags C++

Featured

Slideshows

The Kiwi channel gathers for the 2020 Reseller News Women in ICT Awards

The Kiwi channel gathers for the 2020 Reseller News Women in ICT Awards

Hundreds of leaders from the New Zealand IT industry gathered at the Hilton in Auckland on 17 November to celebrate the finest female talent in the Kiwi channel and recognise the winners of the Reseller News Women in ICT Awards (WIICTA) 2020.

The Kiwi channel gathers for the 2020 Reseller News Women in ICT Awards
Leading female front runners honoured at the 2020 Reseller News Women in ICT Awards

Leading female front runners honoured at the 2020 Reseller News Women in ICT Awards

The leading female front runners of the New Zealand ICT industry joined together for the annual Reseller News Women in ICT Awards event at the Hilton in Auckland, during which hundreds of guests celebrated 13 outstanding individuals who won awards, chosen from more than 50 finalists representing over 30 organisations.

Leading female front runners honoured at the 2020 Reseller News Women in ICT Awards
Channel gathers to celebrate the Reseller News Innovation Awards 2020 winners

Channel gathers to celebrate the Reseller News Innovation Awards 2020 winners

More than 500 channel leaders gathered in Auckland on 21 October at the ​Reseller News Innovation Awards ​2020 to celebrate the achievements of the New Zealand technology industry's top partners, start-ups, vendors, distributors and individuals.

Channel gathers to celebrate the Reseller News Innovation Awards 2020 winners
Show Comments