Подтвердить что ты не робот

Является ли С++ 03 новой версией С++ Standard или просто техническим исправлением (TC) С++ 98?

Я уверен, что где-то я читал авторитетный источник (я считаю, что это было на страницах WG21), что С++ 03 не был техническим исправлением С++ 98, но это была новая версия С++ Стандартный.

Но, тем не менее, я вижу только переключатель -std=c++98 в GCC, а другие компиляторы и Alf P Steinbach сделали несколько комментариев, намекая, что это действительно может быть TC of С++ 98.

Итак, когда я пишу о "С++ 03", достаточно ли упоминать С++ 98? Как связанный вопрос, неправильно ли использовать термин "С++ 03"? Потому что я думаю, что если это действительно С++ 98 TC1, то мне кажется, что его нельзя назвать С++ 03. Так же, как я никогда не видел, чтобы кто-то писал C07 для выпуска C99TC3.

4b9b3361

Ответ 1

Да и нет.

С++ 03 (ISO С++ 14882: 2003) является стандартом по своему усмотрению, и он также является "просто" TC1, потому что только С++ 98 изменен с набором исправлений.

Вы можете сказать, что С++ 03 - это то, что предполагалось для С++ 98, - настоящая формулировка С++ 98, пересмотренная, чтобы заставить ее сказать, что она должна была сказать.

В собственные слова комитета:

"Первый выпуск ИСО/МЭК 14882 был опубликован в 1998 году. Техническое исправление было одобрено в 2003 году, и стандарт был опубликован снова как издание 2003 года".

Посторонний период в нем просто цитируется буквально.

В словах Wikipedia (который не является авторитетом, но должен быть исправлен, если он неправильный):

"В течение нескольких лет после официального выпуска стандарта комитет обрабатывал отчеты о дефектах и ​​опубликовал исправленную версию стандарта С++, ISO/IEC 14882: 2003, в 2003 году.

Можно утверждать, однако, что инициализация стоимости была новой вещью, а не просто коррекцией. И можно утверждать, что сам Технический исправление состоял только из исправлений, а стандарт с поправками с этими исправлениями - это совсем другое дело, новый стандарт. Оба эти точки зрения имеют смысл контекстуально, как я вижу, хотя и не как абсолютные контекстно-независимые утверждения.

Ответ 2

Это совершенно новый Стандарт. Я считаю, что это началось только как TC, поэтому возникает путаница, и это, безусловно, фактически просто релиз с исправлением ошибок. Однако произошли изменения, и стоит знать, говоришь ли вы о 98 или 03.