标题非常具有自我描述性.我已经下载了Qt Creator 2.7.0,我正在尝试编译一些基本的C++ 11代码:
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
x *= 2;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
range based for loops are not allowed in c++ 98 mode
Run Code Online (Sandbox Code Playgroud)
然而,根据这篇文章,这个版本的Qt Creator支持C++ 11.那么我该如何启用呢?
Ali*_*Ali 259
根据这个网站添加
CONFIG += c++11
到你的.pro文件(参见该网页的底部).它需要Qt 5.
其他答案,暗示
QMAKE_CXXFLAGS += -std=c++11
(或QMAKE_CXXFLAGS += -std=c++0x
)
也适用于Qt 4.8和gcc/clang.
Lem*_*ool 32
将其添加到.pro文件中
QMAKE_CXXFLAGS += -std=c++11
Run Code Online (Sandbox Code Playgroud)
要么
CONFIG += c++11
Run Code Online (Sandbox Code Playgroud)
Яoi*_*ois 19
作为处理阿里优秀答案中解决的两种情况的替代方案,我通常会补充说
# With C++11 support
greaterThan(QT_MAJOR_VERSION, 4){
CONFIG += c++11
} else {
QMAKE_CXXFLAGS += -std=c++0x
}
Run Code Online (Sandbox Code Playgroud)
到我的项目文件.如果您不太关心人们在您的团队中使用哪个Qt版本,但是您希望他们在任何情况下都启用C++ 11,这可能很方便.
小智 7
添加到您的qmake文件
QMAKE_CXXFLAGS+= -std=c++11
QMAKE_LFLAGS += -std=c++11
Run Code Online (Sandbox Code Playgroud)