在gcc中执行C++ 98标准

Pie*_*ter 5 c++ gcc c++98

我有一个学校作业,应该用符合C++ 98的代码编写.我如何强制g++只接受遵循此标准的代码?会-std=c++98做的伎俩还是我需要添加额外的标志?

nne*_*neo 11

根据GCC的标准文件:

最初的ISO C++标准作为ISO标准(ISO/IEC 14882:1998)公布,并由2003年出版的技术勘误表(ISO/IEC 14882:2003)进行了修订.这些标准分别称为C++ 98和C++ 03.GCC实现了大部分C++ 98(导出是一个值得注意的例外)和C++ 03中的大多数更改.要在GCC中选择此标准,请使用以下选项之一-ansi,-std = c ++ 98或-std = c ++ 03; 要获得标准所需的所有诊断,您还应指定-pedantic(或-pedantic-errors,如果您希望它们是错误而不是警告).

因此,您应指定-std=c++98 -pedantic是否确实要确保符合标准.

  • +1,但正如它所说,你应该使用`-pedantic-errors`来确保*符合性(就gcc而言).`-pedantic`只是告诉你不遵守规定.顺便说一句,这仍然不会捕获所有使用特定于实现的假设的代码,但这是关于"兼容代码"的含义的争论.在C标准中,格式良好的程序和严格符合程序之间存在差异,同样的差异适用于C++,但我不认为C++标准使用术语"严格符合程序". (3认同)