在我的代码中,我有
#define NOMINMAX
#include <windows.h>
但是每当我使用std::max
或std::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
了定义最小值/最大值,那么为什么智能感知认为它们已定义,即使它们没有定义?而且我已经检查过,我添加的预处理器错误从未被击中。