我读这个有点困惑:Gcc 4.5 online manual --- Standards section。g ++标准支持
他们解释这
原来的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语言”部分,解释更加清晰:
1999 ISO ISO标准中的错误已在2001,2004和2007年发布的三份技术勘误中得到纠正.GCC不支持未纠正的版本。
所以我的问题是:g ++是否也是这种情况(不支持未修正的标准)?
选择g ++标准的唯一选项是-std=c++98
,-std=gnu++98
,-std=c++0x
和-std=gnu++0x
。那是对的吗 ?
最后一个问题:什么是-ansi
选项呢?它仅用于C模式吗?
编辑:
-ansi同义词用于-std = C89(对于C)或-std = C++ 98
*你为什么要支持未修正的标准? – 2010-08-29 18:37:04
这是一个问题,以检查我是否正确理解了C++ 98,C++ 03等与gcc doc之间的关系;不是“我想要”。 – 2010-08-29 20:38:53
请注意,C++ 03标准文本和C++ 98文本之间的显着差异是澄清了歧义等 - 当编译器试图实现C++ 98时发现的变化。在那里,GCC无法合理支持C++ 98。 – MSalters 2010-08-30 11:05:16