3

在我的代码中,我有

#define NOMINMAX
#include <windows.h>

但是每当我使用std::maxstd::min智能感知用 red 下划线时,即使编译器没有抱怨它。如果我将代码更改为

#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了定义最小值/最大值,那么为什么智能感知认为它们已定义,即使它们没有定义?而且我已经检查过,我添加的预处理器错误从未被击中。

4

1 回答 1

2

实际上,我没有卸载它。如果我添加它有助于整理索引器DEFINES+=NOMINMAX

...然后关闭并重新打开项目。尽管 QtCreator 在每次更改 .pro 文件后都告诉“解析”,但我没有立即看到效果。看起来如果你重新打开项目它会更好地“解析”

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

于 2013-02-22T09:34:46.690 回答