例如,具有 C99 标准的 C 编程语言支持十六进制浮点文字,但具有 C++03 标准的 C++ 不支持。
我对其进行了测试,GCC 在 C++03 模式(-std=c++03)中识别出十六进制浮动文字,但根据 C++ 标准,它不应该。我知道,这不是悲剧,我只是对这个问题感兴趣..
GCC 编译器是否符合标准?你能给我推荐一个“完美”符合标准的 C/C++ 编译器吗?
当您向 GCC 提供标准时,根据手册
编译器将接受所有遵循该标准的程序以及那些使用不违背该标准的 GNU 扩展的程序。
如果您想确保严格遵守标准,请添加-pedantic
,这将警告十六进制 FP 文字。
Comeau 编译器使用它自己的 libcomo 标准库,几乎可以提供最接近完美的 C++03 支持。
对于 C++11,带有 libc++ 的 Clang 和带有 libstdc++ 的 GCC 都非常好,但并不完美(还)