Является ли C ++ 03 новой версией стандарта C ++ или просто Техническим исправлением (TC) C ++ 98? - PullRequest
23 голосов
/ 27 ноября 2011

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

Но, тем не менее, я вижу только -std=c++98 переключатель в GCC и других компиляторах, и Альф П. Штейнбах сделал несколько комментариев , намекающих на то, что это действительно может быть TC C ++ 98.

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

Ответы [ 2 ]

9 голосов
/ 27 ноября 2011

Да и нет.

C ++ 03 (ISO C ++ 14882: 2003) - сам по себе стандарт, и он также является «просто» TC1, потому что это только C ++ 98, дополненный набором исправлений.

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

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

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

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

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

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

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

1 голос
/ 27 ноября 2011

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

...