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

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

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

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

2 ответа

Решение

И да и нет.

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

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

По словам самого комитета:

"Первое издание ISO/IEC 14882 было опубликовано в 1998 году. Техническое исправление было утверждено в 2003 году. и стандарт был снова опубликован как выпуск 2003 года ".

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

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

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

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

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

Другие вопросы по тегам