1 min read

Last week, as per the schedule, the ISO C++ Committee met in Kona, Hawaii to finalize the feature set for the next International Standard (IS), C++ 20. The committee has announced that C++20 is now feature complete and they are planning to finish the C++20 specification at the upcoming meeting, which is scheduled to happen in July 2019. Once the specification is complete they are planning to send the Committee Draft for review.

Some of the features this draft include

Modules

With the introduction of modules, developers will not require to separate their files into header and source parts. The committee has now fixed internal linkage escaping modules.

Coroutines

The committee has gone through the coroutines proposals and has decided to go ahead with the specification. According to the specification of this feature, three keywords will be added: co_await, co_yield, and co_return.

Contracts

Contracts are made up of preconditions, postconditions, and assertions. These act as a basic mitigation measure when a program goes wrong because of some mismatch of expectations between parts of the programs. The committee is focused on refining the feature and renamed expects/ensures to pre/post.


Concepts

The concepts library include the definitions of fundamental library concepts, which are used for compile-time validation of template arguments and perform function dispatch on properties of types.

Ranges

The ranges library comes with components for dealing with ranges of elements including a variety of view adapters.

To read the entire announcement, check out this Reddit thread.

Read Next

Code completion suggestions via IntelliCode comes to C++ in Visual Studio 2019

How to build Template Metaprogramming (TMP) using C++[Tutorial]

Mio, a header-only C++11 memory mapping library, released!