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
)。