I am a bit puzzled reading this: Gcc 4.5 online manual --- Standards section.
They explain this
The original ISO C++ standard was published as the ISO standard (ISO/IEC 14882:1998) and amended by a Technical Corrigenda published in 2003 (ISO/IEC 14882:2003). These standards are referred to as C++98 and C++03, respectively. GCC implements the majority of C++98 (export is a notable exception) and most of the changes in C++03.
But they don't tell if gcc support the 'bare' 98 C++ or only the corrected C++03. In the 'C language' section the explanation is more clear:
Errors in the 1999 ISO C standard were corrected in three Technical Corrigenda published in 2001, 2004 and 2007. GCC does not support the uncorrected version.
So my question is: is it also the case for g++ (no support of the uncorrected standard) ?
The only 4 options to select a g++ standard are then -std=c++98
, -std=gnu++98
,-std=c++0x
, and -std=gnu++0x
. Is that correct ?
And last subquestion: What is the -ansi
option then ? Is it only used in C mode ?
Edit:
-ansi A synonym for -std=c89 (for C) or -std=c++98