-std = c ++ 11标志在G 4.4.6中无法识别

Joe*_*Joe 6 c++ compiler-construction gcc g++ c++11

我有一些使用C++ 11标准编写的代码,我们的g ++版本是4.4.6,所以据我所知,应该支持c ++ 11(从4.3开始).

但是在尝试使用标志"-std = c ++ 11 -std = gnu ++ 11"进行编译时,我会重复出现错误

cc1plus: error: unrecognized command line option "-std=c++11"
cc1plus: error: unrecognized command line option "-std=gnu++11"
Run Code Online (Sandbox Code Playgroud)

使用-std = c ++ 0x进行编译会产生错误,例如

DeviceInfo.cpp:22: error: expected initializer before ‘:’ token
Run Code Online (Sandbox Code Playgroud)

对应这行代码:

for (cl::Platform& plat : platforms)
Run Code Online (Sandbox Code Playgroud)

这是一个c ++ 11特定的语法位吗?(它看起来不像我,但所有这些代码都是作为一个例子给出的,所以应该像编译器一样工作.

有帮助吗?

AnT*_*AnT 11

-std=c++11更高版本的GCC支持该设置.通过-std=c++0x设置启用了对新生C++ 11的初始支持.这可能是你应该尝试的.

是的,for您尝试使用的语法主要是C++ 11语法.