私のコードでは
#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
られるので、インテリセンスは定義されていないのに定義されたと考えるのはなぜですか? そして、私がチェックしたところ、私が追加したプリプロセッサエラーは決してヒットしません。