hplatform.h与std::max冲突
x1244 opened this issue · comments
x1244 commented
在windows下,当包含hplatform.h
时,与std::max
产生冲突。
简单的代码行
double value = std::max(1.1, 2.2);
编译错误,提示信息为:
src\hvtest.cpp(8): error C2589: “(”:“::”右边的非法标记
src\hvtest.cpp(8): error C2062: 意外的类型“unknown-type”
src\hvtest.cpp(8): error C2059: 语法错误:“)”
查看源码,应该是#include <windows.h>
引入的宏max展开导致的。
能否在引入windows.h
后取消max的宏定义
#undef min
#undef max
还是由用户自己处理?
这是一个问题,我也是排查了好一顿才找到,提交到这里,也提个醒。
ithewei commented
这个是windows本身的问题,hv不做处理,另外可以使用hv里定义的大写MAX、MIN宏,应该也没问题
x1244 commented
是与使用的其他库std::max()
冲突了。
这种问题确实不好处理,都是系统库的问题。
既然不处理了,也没关系,自己注意就可以了。
留在这里给大家提个醒。