我有一些使用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`
使用-std=c++0x
编译会产生错误,例如:
DeviceInfo.cpp:22: error: expected initializer before ‘:’ token
对应于这行代码:
for (cl::Platform& plat : platforms)
这是C++11特定的语法吗?(在我看来似乎不是,但是所有这些代码都被作为示例给出,因此应该可以在编译器中正常工作。)
有什么帮助吗?
c++11
标志。 4.4版本太旧了,即使使用-std=c++0x
,您也无法获取范围for循环功能。请至少阅读编译器的手册,其中列出了它支持的选项。 - Mat