Вопрос

У меня кто -то сказал, что C ++ 98 был написан под ANSI, прежде чем был официально стандартизирован как ISO/IEC 14882: 1998.

Я знаю, что ANSI был связан с C, но я не могу найти много доказательств того, что фраза «ANSI C ++» ужасно точна.

  • Является ли "ANSI C ++" хорошим описанием для C ++ 98?
  • Является ли «ANSI C ++» хорошим описанием для последующих версий стандарта C ++?
Это было полезно?

Решение

Первоначально, в 89 году, стандартизация C ++ была обработана ANSI X3J16. Начиная с 91 года ISO WG21 присоединился. Вы можете прочитать BS История C ++: 1979-1991. Анкет IMO, "ANSI C ++" - это просто оставшееся имя; Язык - это «ISO C ++», хотя ANSI косвенно участвует в стандартизации.

Другие советы

Этот Gotw Page Описывает связь ANSI и ISO в отношении C ++, кратко:

Официальные имена комитетов ISO и US:

ISO/IEC JTC1/SC22/WG21 - C ++ (комитет ISO C ++)

Выдвигает PL22.16 - C ++ (Комитет C ++ США, часто называемый «Комитетом ANSI C ++» - хотя более точно выдвигает отдельную организацию, которая не является частью ANSI, но аккредитована ANSI для разработки стандартов США) (ранее называется X3J16 и J16)

Эти две группы вместе часто упоминаются в единственном числе как «комитет C ++», потому что они встречаются и выполняют свою работу вместе. Встречи всегда в одной комнате одновременно

Похоже, что стандарт ISO, разработанный этим комитетом, автоматически становится стандартом США, хотя я уверен, что люди, которые на самом деле работают в этих комитетах, могут лучше объяснить.

Вроде, но не совсем. Нет, и никогда не был отдельный стандарт ANSI для C ++.

Текущий стандарт, однако, на самом деле ANCITS/ISO/IEC 14882-2003. Анкет По состоянию на 2003 год ANCITS стала отдельной организацией ANSI-аккредитованной. Название подписало не новое, но ранее, оно было частью ANSI. В 2003 году это было "развернулся«Как отдельная (но все еще ANSI-аккредитованная) организация. Следовательно, текущий (2003) стандарт отображается в качестве стандарта ANCITS/ISO/IEC, и я считаю, что предстоящий (2011) стандарт также.

C ++ 98 был разработан Международным комитетом, частью Международной организации по стандартизации (ISO). ANSI и другие национальные органы по стандартам являются членами этого комитета. Международный стандарт был принят ANSI в качестве национального стандарта США, а также многими другими национальными стандартами.

Более ранние версии были разработаны коммерчески в США AT & T; Я не уверен, был ли ANSI вовлечен в промежуточные версии (редактировать: но ответ Эрика говорит о том, что это было, кратко).

Является ли "ANSI C ++" хорошим описанием для C ++ 98?

Я бы назвал это «стандартным C ++», или «C ++ 98», или просто «C ++», если ясно, что я говорю о текущем стандарте. Хотя технически точный, «ANSI C ++» может запутать людей, которые не понимают, что это означает одно и то же, особенно людей из других стран, которые могут не знать, что такое ANSI. Я, вероятно, получил бы нечетные взгляды, если бы назвал его «Британский стандарт C ++», одинаково точное описание.

Является ли «ANSI C ++» хорошим описанием для последующих версий стандарта C ++?

Тот же ответ. Стандарты C ++ разрабатываются ISO и приняты ANSI и другими телами.

AFAIK, когда они говорят «ANSI C ++», они действительно означают «нет специфических для компилятора расширений».

Рабочая группа ISO создает стандарт. C ++ 98 проделал большую работу над стандартизацией в Америке (потому что именно там был создан C ++, и где жили его создатели) до того, как стандартизация была взята под эгидой комитета ISO (которые были теми же людьми). Последний стандарт ISO был принят ANSI и другими органами по национальным стандартам.

Я всегда называл стандартный C ++ как «стандартный C ++».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top