Поддержка стандартов g ++

Я немного озадачен, читая это: Электронное руководство 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 ++ (без поддержки нескорректированного стандарта)?

Тогда единственными 4 вариантами выбора стандарта g ++ являются -std = c ++ 98 , -std = gnu ++ 98 , -std = c ++ 0x и -std = gnu ++ 0x . Это правильно?

И последний подвопрос: Что тогда является опцией -ansi ? Он используется только в режиме C?

Редактировать:

-ansi Синоним -std = c89 (для C) или -std = c ++ 98

9
задан Cedric H. 30 August 2010 в 11:59
поделиться

2 ответа

gcc не поддерживает неисправленный стандарт, он стремится (хотя и не достигает 100%) соответствия C++03. Технически существует только один текущий стандарт C++, и это версия, включающая TC1. Как говорится, "поддерживает большинство изменений в C++03. Чтобы выбрать этот стандарт... используйте один из вариантов -ansi или -std=c++98" .

Нет поддержки или возможности выбрать устаревшую неисправленную версию стандарта 1998 года.

9
ответ дан 4 December 2019 в 19:32
поделиться

По крайней мере, насколько я знаю, нет способа «отключить» поддержку (любой из) новых функций C++03.

-ansi распознается внешним интерфейсом C. Чтобы узнать больше о том, какие компоненты распознают какие переключатели, вы можете использовать g++ -v --help (это дает много вывода, поэтому вы обычно хотите направить его в less или что-то в этом роде. по этому заказу).

3
ответ дан 4 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: