Qt Creator的intellisense认为min和max是定义的,即使它们不是

时间:2013-02-22 09:06:44

标签: c++ qt c-preprocessor qt-creator

在我的代码中我有

#define NOMINMAX
#include <windows.h>

但每当我使用std::maxstd::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会认为它们是定义的,即使它们不是?我已经检查过,我添加的预处理器错误从未被命中。

1 个答案:

答案 0 :(得分:2)

实际上,我没有卸载它。如果我添加DEFINES+=NOMINMAX

,它有助于整理索引器

...然后关闭并重新打开该项目。即使QtCreator在每次更改.pro文件后告诉'解析',我也没有立即看到效果。看起来如果你重新打开项目它会做得更好'解析'

我的QtCreator版本是2.6.1,我使用的是Qt5.0.0