我安装了gcc 4.9.2。我使用以下命令编译了程序:
/root/gcc-4.9.2/bin/g++ -std=c++1y testing.cpp
请注意,除了选项-std=c++1y
之外,还有另一个选项-std=c++14
。编译器是否会以相同的方式工作,并为两个选项生成完全相同的可执行文件?
答案 0 :(得分:27)
C++ 14
是最新的ISO标准,除非您需要某些gcc非标准功能,否则应该使用它。
c++1y
是一个在完成之前用于引用c ++ 14标准的名称,因此很可能遵循标准草案,而不是实际标准本身。两者之间可能存在微小差异,但c++14
是ISO标准。
简而言之,请使用c++14
。
答案 1 :(得分:3)
对于您提到的gcc 4.9.2,c++14
和c++1y
之间没有区别。但对于较早的gcc版本,例如gcc 4.8.1中有no c++14
option
g++: error: unrecognized command line option '-std=c++14'
因为尚不知道标准验收的年份。在这种情况下,使用-std=c++1y
选项是only solution来启用即将到来的c ++ 14标准的某些部分。