Jonathan Mee
Jonathan Mee

Reputation: 38969

Is C++21 the Next Standard?

I heard a lot of buzz about C++17 and C++14 even when C++11 was rolling out.

But now I understand that C++17 is on track to deliver (without Concepts) in the Fall of 2017, but I'm still not sure what the following standard is.

I've heard C++21 kicked around. Is that accurate?

Upvotes: 12

Views: 13731

Answers (4)

NathanOliver
NathanOliver

Reputation: 181067

Update: C++20 did become the next standard after C++17 and C++23 is set to be the next version after C++20.

Looking as ISOCPP we see

enter image description here

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

Upvotes: 24

w08r
w08r

Reputation: 1814

  • The next standard at the time the question was asked turned out to be c++20 [1] .
  • The next standard ATOW will be c++23 [2].

[1] https://en.cppreference.com/w/cpp/20

[2] https://en.cppreference.com/w/cpp/23

Upvotes: 0

dhaumann
dhaumann

Reputation: 1688

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.

Upvotes: 12

Yakk - Adam Nevraumont
Yakk - Adam Nevraumont

Reputation: 275966

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.

Upvotes: 7

Related Questions