如题,因为windef.h
中定义了max
和min
宏:
#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 */
工程中如果包含了windows.h
或windef.h
头文件,再使用c++标准库std::min
或std::max
,就会发生编译错误。
解决的办法就是定义NOMINMAX
宏,一般是在工程配置中定义。