我正在使用Qt Creator编写C++11代码。
"warning: identifier 'nullptr' is a keyword in C++11 [-Wc++0x-compat]"
"error: 'nullptr' was not declared in this scope"
这段代码在其他地方是可以运行的,相关部分如下:
... = nullptr;
可能出了什么问题?
这不已经是一个关键词了吗?它的作用域不是全局吗?
我正在使用Qt Creator编写C++11代码。
"warning: identifier 'nullptr' is a keyword in C++11 [-Wc++0x-compat]"
"error: 'nullptr' was not declared in this scope"
这段代码在其他地方是可以运行的,相关部分如下:
... = nullptr;
可能出了什么问题?
这不已经是一个关键词了吗?它的作用域不是全局吗?
从QtCreator内部打开您的.pro
文件,然后添加以下内容
QMAKE_CXXFLAGS += -std=c++0x
-std=c++11
。 - MatQt 5
中的 CONFIG += c++11
表示启用 C++11
标准特性。 - Lol4t0.pro
文件是一个qmake配置文件。(哦,而且是Qt,不是QT。) - Mat.pro
文件,那么你需要使用qmake
。即使你不使用Qt库,也没有关系,因为qmake
将生成MakeFile
,而CONFIG
或QMAKE_CXXFLAGS
是qmake
(构建系统)级别的标志,而不是Qt库
级别的标志。 - Lol4t0CONFIG
变量和 QMAKE_CXXFLAGS
变量有什么不同?好好想一想。 - Lol4t0尝试将以下行添加到您的cpp源代码中
#ifndef _GXX_NULLPTR_T
#define _GXX_NULLPTR_T
typedef decltype(nullptr) nullptr_t;
#endif
/* C++11 */
-std=c++11
? - Joseph Mansfield