
c++项目中引入windows.h后,会包以上错误,点击后会跳转到min或者max函数

这是因为windows.h中
#include <windef.h> =》
#include <minwindef.h>
minwindef.h中宏定义了 max min函数

结合上边报错地方变成 std::numeric_limits<T>::(((a) < (b)) ? (a) : (b)),这不是合法的C++程序。
Windows头文件中的min和max宏会与C++标准库的std::min和std::max函数冲突,导致编译器错误。
可通过 #define NOMINMAX禁用,定义NOMINMAX宏可禁用这些宏,确保标准库函数正常使用。

5147

被折叠的 条评论
为什么被折叠?



