如果在使用GCC4.8.1编译我的C ++应用程序时未指定-std
选项,
它默认应用c ++ 11值吗?
我读了GCC文件中的文字,但仍然不确定。我的英语不好,所以这可能是我的不好。
-fext-numeric-literals(仅限C ++和Objective-C ++)接受虚构,定点或机器定义的文字数字后缀为GNU 扩展。关闭此选项后,将处理这些后缀 作为C ++ 11用户定义的文字数字后缀。默认情况下处于启用状态 对于所有pre-C ++ 11方言和所有GNU方言:-std = c ++ 98, -std = gnu ++ 98,-std = gnu ++ 11,-std = gnu ++ 1y。默认情况下,此选项在ISO C ++ 11之后关闭(-std = c ++ 11,...)。
答案 0 :(得分:10)
2018年更新:在最新版本的gcc中,-std
的默认选项现为-std=gnu++14
。
来自gcc standards 2.2 C ++语言
如果没有给出C ++语言方言选项,则默认为-std = gnu ++ 98。
因此,如果要启用C ++ 11功能,则必须添加选项-std=c++11
或-std=gnu++11
(对于带有GNU扩展的C ++ 11)
答案 1 :(得分:2)
从手册页:
c++98 c++03 The 1998 ISO C++ standard plus the 2003 technical corrigendum and some additional defect reports. Same as -ansi for C++ code. gnu++98 gnu++03 GNU dialect of -std=c++98. This is the default for C++ code.
如果有人想知道C ++ 03会发生什么。