Is C++21 the Next Standard?

Looking as ISOCPP we see

enter image description here

Which shows that at least right now, C++20 is the name they are using.


No one can definitely say the exact release date. But given the recent C++ releases C++11, C++14, C++17, it seems we have a release cycle of three years.

In fact, Herb Sutter wrote in June 2016:

Note: [...] but for now we’re staying with three years, so the next standard after C++17 will be C++20.

So it will most likely be C++20. And all features that are not ready by then, will probably be postponed to a later C++ version.

If you are interested in C++ development, I recommend to regularly read the C++ subreddit. There are many more resources in the net, of course.


You'll note that C++1z is still in use, and it is now feature complete. But it doesn't become C++17 until published in 2017.

At this point, we shouldn't be talking about C++20 or C++21 even if that is the target date. We should be talking about C++2a or C++2x.

The current plan is for a 3 year release cycle, and some grumbles about moving to 2 year release cycle. But it officially remains 3 years, so the target date for the next one is 2020.

However, what should we call it now? C++2x runs into the problem that if there are more than 3 standards releases in 2020s, we run out of letters. At 3 years per release, that would be 2020, 2023, 2026, 2029 -- one too many. And there has been some talk of trying for a 2 year release cycle (maybe even for C++2x, coming out in 2019, which would be hilarious after C++0x coming out in 2011).

Any such confusion will be well worth the bragging rights of breaking the naming cycle, and might introduce C++2α or C++2Ω, which is another plus.

So the answer to your question: the next standard should be called C++2x at this point, and x may be any value between -1 and +3 if history is any guide: the target date is 2020, but about half of all C++ standard releases did not occur in the year they where planned, so take that with a grain of salt.