Estoy un poco confundido al leer esto: Gcc 4.5 online manual --- Standards section.compatibilidad con normas g ++
Se explican esta
El original ISO C++ estándar se publicó como el estándar ISO (ISO/IEC 14882: 1998) y modificado por un Corrigenda técnico publicado en 2003 (ISO/IEC 14882: 2003). Estos estándares se conocen como C++ 98 y C++ 03, respectivamente. GCC implementa la mayoría de C++ 98 (la exportación es una excepción notable) y la mayoría de los cambios en C++ 03.
Pero no dicen si gcc admite el 'desnudo' 98 C++ o solo el corregido C++ 03. En la sección 'lenguaje C' es la explicación más clara:
Los errores en la norma ISO 1999 C se corrigieron en tres Corrección de errores técnicos publicados en 2001, 2004 y 2007. GCC no es compatible con la versión sin corregir.
Así que mi pregunta es: ¿es también el caso de g ++ (no es compatible con el estándar no corregido)?
Los únicos 4 opciones para seleccionar un g ++ estándar son entonces -std=c++98
, -std=gnu++98
, -std=c++0x
, y -std=gnu++0x
. Es eso correcto ?
Y la última subestación: ¿Cuál es la opción -ansi
, entonces? ¿Solo se usa en modo C?
Editar:
-ansi Un sinónimo de -std = c89 (para C) o -std = C++ 98
* ¿por qué * le gustaría apoyar el estándar no corregido? –
Fue una pregunta para comprobar si entendía correctamente las relaciones entre C++ 98, C++ 03, etc. y el documento gcc; no es un "quiero" –
Tenga en cuenta que una parte importante de las diferencias entre el texto estándar de C++ 03 y el texto de C++ 98 son aclaraciones de ambigüedades y similares: cambios descubiertos cuando los compiladores intentaron implementar C++ 98. Allí, GCC no podía soportar razonablemente C++ 98. – MSalters