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语言”部分,解释更加清晰:

1999年ISO C标准中的错误在2001年,2004年和2007年发布的三份技术勘误表中得到纠正。海湾合作委员会不支持未纠正的版本。

所以我的问题是:这是否也适用于g ++(不支持未修正的标准)?

然后选择一个g ++标准的唯一4个选项是-std=c++98-std=gnu++98-std=c++0x-std=gnu++0x 。 那是对的吗 ?

最后一个问题:什么是-ansi选项呢? 它仅用于C模式吗?

编辑:

-ansi -std = c89(对于C)或-std = c ++ 98的同义词


gcc不支持未修正的标准,它的目标是(尽管未达到100%)C ++ 03一致性。 从技术上讲,目前C ++只有一个标准,包含TC1的版本就是它。 正如它所说的“支持C ++ 03中的大部分更改”。要选择此标准,请使用选项-ansi-std=c++98

没有支持或选择选择过时未经修正的1998年版本的标准。


至少据我所知,不,没有办法“关闭”对C ++ 03的新功能的支持。

-ansi被C前端所认可。 为了更好地了解哪些组件可以识别哪些开关,可以使用g++ -v --help (这会产生大量输出,因此您通常需要将它按管道顺序排列或less )。

链接地址: http://www.djcxy.com/p/86355.html

上一篇: g++ standards support

下一篇: pedantic in GCC/G++ compiler?