Я немного озадачен, читая это: Онлайн-руководство по Gcc 4.5 --- Раздел стандартов .
Они объясняют это
Первоначальный стандарт ISO C ++ был опубликован как стандарт ISO (ISO / IEC 14882: 1998) и дополнен Техническим исправлением, опубликованным в 2003 году (ISO / IEC 14882: 2003). Эти стандарты называются C ++ 98 и C ++ 03 соответственно. GCC реализует большую часть C ++ 98 (экспорт является заметным исключением) и большинство изменений в C ++ 03.
Но они не говорят, поддерживает ли gcc «голый» 98 C ++ или только исправленный C ++ 03. В разделе «язык C» объяснение более ясное:
Ошибки в стандарте ISO C 1999 года были исправлены в трех Технических исправлениях, опубликованных в 2001, 2004 и 2007 годах. GCC не поддерживает исправленную версию.
Итак, мой вопрос: это также относится и к g ++ (без поддержки нескорректированного стандарта)?
В этом случае для выбора стандарта g ++ можно выбрать только 4 варианта: -std=c++98
, -std=gnu++98
, -std=c++0x
и -std=gnu++0x
. Это правильно?
И последний подвопрос: что тогда является опцией -ansi
? Используется только в режиме C?
Редактировать:
-ansi Синоним для -std = c89 (для C) или -std = c ++ 98