g ++标准支持

时间:2010-08-29 17:15:54

标签: c++ gcc g++ standards

我对此感到有点困惑:Gcc 4.5 online manual --- Standards section

他们解释了这个

  

最初的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标准中的错误在2001年,2004年和2007年发布的三份技术勘误中得到了纠正.GCC不支持未修正的版本。

所以我的问题是:g ++也是如此(不支持未经修正的标准)?

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

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

修改:

  

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

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:3)

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

C前端识别

-ansi。要获得有关哪些组件识别哪些开关的更多信息,您可以使用g++ -v --help(这会产生大量输出,因此您通常希望将其传输到less或该订单上的某些内容。)

相关问题