在我的代码中有
#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
定义最小值/最大值,那么为什么 intellisense 会认为它们已定义,即使它们没有定义?而且我已经检查过,我添加的预处理器错误从未被命中。
最佳答案
其实我并没有卸载它。如果我添加 DEFINES+=NOMINMAX
...然后关闭并重新打开项目。尽管 QtCreator 在每次更改 .pro 文件后都告诉“正在解析”,但我没有看到立竿见影的效果。看起来如果你重新打开项目它会更好地“解析”
我的QtCreator版本是2.6.1,我用的是Qt5.0.0
关于c++ - Qt Creator 的 intellisense 认为 min 和 max 已定义,即使它们没有定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15020415/