Sono un po 'perplesso leggendo questo: Gcc 4.5 online manual --- Standards section.g ++ standard support
Essi spiegano questo
standard di L'originale ISO C++ è stato pubblicato come standard ISO (ISO/IEC 14882: 1998) e modificato da un Rettifiche tecnico pubblicato nel 2003 (ISO/IEC 14882: 2003). Questi standard sono indicati rispettivamente come C++ 98 e C++ 03. GCC implementa la maggior parte di C++ 98 (l'esportazione è un'eccezione notevole) e la maggior parte delle modifiche in C++ 03.
Ma non dicono se gcc supporta il C++ 'bare' 98 o solo il C++ 03 corretto. Nella sezione "Lingua C" la spiegazione è più chiara:
Errori nello standard ISO C 1999 sono stati corretti in tre correzioni tecniche pubblicate nel 2001, 2004 e 2007. GCC non supporta la versione non corretta.
Quindi la mia domanda è: è anche il caso di g ++ (nessun supporto dello standard non corretto)?
Le uniche 4 opzioni per selezionare un livello g ++ sono poi -std=c++98
, -std=gnu++98
, -std=c++0x
e -std=gnu++0x
. È corretto ?
E ultima sottocompleta: che cos'è l'opzione -ansi
? È usato solo in modalità C?
Edit:
-ansi Un sinonimo di -STD = C89 (per C) o -std = C++ 98
* perché * si desidera supportare lo standard non corretto? –
Era una domanda per verificare se ho capito correttamente le relazioni tra C++ 98, C++ 03, ecc. E il documento gcc; non un "voglio". –
Si noti che una parte significativa delle differenze tra il testo standard C++ 03 e il testo C++ 98 sono chiarificazioni di ambiguità e simili - cambiamenti scoperti quando i compilatori tentavano di implementare C++ 98. Lì, GCC non ha potuto ragionevolmente supportare C++ 98. – MSalters