如题,因为windef.h中定义了max和min宏.
如果工程中包含了windows.h或windef.h头文件,再使用c++标准库std::min或std::max,就会发生编译错误。
#ifndef NOMINMAX
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#endif /* NOMINMAX */
#define NOMINMAX
#undef max
#undef min