在我的代码中我有
#define NOMINMAX
#include <windows.h>
但每当我使用std::max
或std::min
时,intellisense 会用红色下划线,即使编译器没有抱怨它。如果我将代码更改为
#define NOMINMAX
#include <windows.h>
// make sure they min/max weren't defined
#if defined(min) || defined(max)
#error "min or max were defined"
#endif
// but intellisense still thinks they were,
// so this is needed
#undef min
#undef max
问题消失了。但是定义NOMINMAX
会阻止windows.h
定义min / max,那么为什么intellisense会认为它们是定义的,即使它们不是?我已经检查过,我添加的预处理器错误从未被命中。
答案 0 :(得分:2)
实际上,我没有卸载它。如果我添加DEFINES+=NOMINMAX
...然后关闭并重新打开该项目。即使QtCreator在每次更改.pro文件后告诉'解析',我也没有立即看到效果。看起来如果你重新打开项目它会做得更好'解析'
我的QtCreator版本是2.6.1,我使用的是Qt5.0.0