Table of Contents

I have a great news! During the last meeting in Kona, the committee not only made final notes on the C++17 standard! There’s also a groundbreaking news that behind the curtains they planned C++18!

Disclaimer/Note: this was just an April Fool’s joke! :). Please read the follow-up here!


As it appears, the C++ Cometee finally understood that C++17 doesn’t contain the features everyone wanted. At the moment It’s impossible to change the standard - since it was already sent to the final ISO balloting… but during the last meeting in Kona (March), they decided to put all the efforts in the preparation of C++18!

C++18 will basically contain all the favourite features that programmers expected: So what we’ll get:

  • Modules!
  • Concepts
  • Ranges
  • Co-routines
  • Contracts
  • Possibly transactional memory

That’s really huge list of features!

In fact, most of the features are available in compilers already, as experimental features. So all we have to do during this year is to accept all the differences in the implementation, agree on the final scope, make the final wording… and wrap in the C++18 Standard.

Just to make it clear:


There are already two implementations that seems to work well: one from clang and one from Microsoft.

You can play with them here: Clang, Visual Studio .


As we know, concepts (concepts-lite to be correct) are already available in GCC: link here.

A few days ago Gabriel Dos Reis announced - “Concepts are ready”!. See this PDF: P0606R0, Concepts Are Ready.

They are published as: ISO/IEC TS 19217:2015
Information technology – Programming languages – C++ Extensions for concepts


Containers Redesigned!

Already working implementation can be found on github, from Microsoft: link here. Works since Visual Studio 2015 update 3.


Co routines in Visual Studio: link here.


Current proposal can be found here - P0542R0.

How to write preconditions and postconditions for functions.

Transactional memory  

It’s already published as C++ extension: ISO/IEC TS 19841:2015
Technical Specification for C++ Extensions for Transactional Memory

So we just have to merge it into C++18.


I was really excited when I first heard that information! I’ve noticed that people complained that C++17 is not a major release and a lot of great features won’t be present. With C++18 we can fix this issue! Instead of waiting another three years (for C++20), we’ll get all the the best features in just one year from now.

  • What do you think about C++18?
  • Will the committee complete that on time?
  • What features would you like to see in C++18?