标准库std::min/std::max与min/max宏冲突

如题,因为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宏,一般是在工程配置中定义。
————————————————
版权声明:本文为CSDN博主「china_jeffery」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/china_jeffery/article/details/788012

发表评论