g ++标准支持

Ced*_* H. 9 c++ standards gcc 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年,2004年和2007年发布的三份技术勘误更正了1999年ISO C标准中的错误.GCC不支持未修正的版本.

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

唯一的4个选项以选择克++标准然后-std=c++98,-std=gnu++98,-std=c++0x,和-std=gnu++0x.那是对的吗 ?

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

编辑:

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

CB *_*ley 9

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

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

  • @Martin:TC1基本上是C++ 98的错误修正,而TR1是关于可能的库扩展的报告.两件完全不同的东西. (2认同)