2016-08-05 2 views
8

Я слышал много шума о C++ 17 и C++ 14, даже когда C++ 11 выкатывался.Является ли C++ 21 следующим стандартом?

Но теперь я понимаю, что C++ 17 находится на пути к поставке (без концепций) осенью 2017 года, но я все еще не уверен, что такое следующий стандарт.

Я слышал, как C++ 21 пнул. Это точно?

+20

Держись, просто дай мне запустить мою машину времени, и я дам тебе знать 5 минут назад. – Pubby

+2

Я ... не совсем уверен, есть ли этот вопрос по теме или вне темы ... – VermillionAzure

+2

Я думал, что была дискуссия о новом стандарте, который происходит в 2019 году, который идет на C++ NEXT, потому что 1z уже был последнее последнее в алфавите. – midor

ответ

17

Глядя, как ISOCPP мы видим

enter image description here

Это показывает, что по крайней мере сейчас C++ 20 это имя они используют.

+10

Мне очень нравится, что 1998-2001 годы даже не вырезано. Кому нужны эти годы. – Barry

+5

По-видимому, t чувствую, что ему нужно какое-то улучшение в течение этих лет. – NathanOliver

+2

@Barry Действительно удивительно, что со всеми изменениями в отрасли C++ оставался актуальным без обновления как десятилетие. Говорит на очень необходимый сегмент рынка, я полагаю. –

9

Никто не может точно сказать точную дату выпуска. Но, учитывая недавние выпуски C++ C++ 11, C++ 14, C++ 17, кажется, у нас есть цикл выпуска три года.

В самом деле, Herb Sutter wrote in June 2016:

Примечание: [...], но сейчас мы остаёмся с трех лет, так что следующий стандарт после C++ 17 будет C++ 20.

Таким образом, это, скорее всего, будет C++ 20. И все функции, которые к тому времени не готовы, скорее всего будут перенесены на более позднюю версию на C++.

Если вас интересует разработка на С ++, я рекомендую регулярно читать C++ subreddit. В сети, конечно, есть many more resources.

7

Вы заметите, что C++ 1z все еще используется, и теперь функция завершена. Но это не становится C++ 17 до 2017 года.

На данный момент мы не должны говорить о C++ 20 или C++ 21, даже если это целевая дата. Мы должны говорить о C++ 2a или C++ 2x.

Текущий план рассчитан на трехлетний цикл выпуска, а некоторые ворчат о переходе на двухлетний цикл выпуска. Но официально он остается 3 года, поэтому намеченная дата для следующего - 2020.

Однако, что мы теперь будем называть? C++ 2x сталкивается с проблемой, что если в 2020 году выпущено более трех версий стандартов, у нас заканчиваются письма. Через 3 года на выпуск, это будет 2020, 2023, 2026, 2029 - слишком много. И были некоторые разговоры о том, чтобы попытаться сделать двухлетний цикл релиза (возможно, даже для C++ 2x, выйдя в 2019 году, что было бы весело после выхода C++ 0x в 2011 году).

Любая такая путаница будет стоить прав на похвалы за нарушение цикла именования и может ввести C++ 2α или C++ 2Ω, что является еще одним плюсом.

Итак, ответ на ваш вопрос: следующий стандарт должен называться C++ 2x в этот момент, а x может быть любым значением между -1 и +3, если история - это любое руководство: целевая дата - 2020, но около половины всех стандартных выпусков C++ не происходило в год, когда они планировались, поэтому возьмите это с солью.

+3

Итак, что имя должно отличаться от того, является ли это выпущенным стандартом. Я могу оценить нюанс там, и если есть официальное имя, я не против его использования. dard комитет сыграл довольно быстро и проиграл с C++ 17. Я редко, если вообще когда-либо, вижу, что они относятся к C++ 1z. –

+0

Серьезно, исчерпывание букв вряд ли является основанием для заданной даты для следующего стандарта C++. Пожалуйста, держите свои ответы в этом вопросе. – dhaumann

+1

@dhaumann У нас нет времени. Мы не знаем, когда произойдет следующая версия. Таким образом, самое лучшее, что мы можем сделать, это (A) угадать, когда это произойдет, и (B) разработать для него недвусмысленное рабочее имя. Исторически 50% (или больше?) Стандартов C++, где они не доставлялись в год, где они планировались. Они утверждают, что они сделают лучше: и есть некоторые слабые доказательства, которые они могут (поскольку они достигли 1, и находятся на пути к 2 в ряд, и план прочен). Но обсуждение * того, что мы должны назвать сейчас *, я считаю важным. – Yakk