ithewei / libhv

🔥 比libevent/libuv/asio更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.

Home Page:https://github.com/ithewei/libhv/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hplatform.h与std::max冲突

x1244 opened this issue · comments

在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

还是由用户自己处理?
这是一个问题,我也是排查了好一顿才找到,提交到这里,也提个醒。

这个是windows本身的问题,hv不做处理,另外可以使用hv里定义的大写MAX、MIN宏,应该也没问题

是与使用的其他库std::max()冲突了。
这种问题确实不好处理,都是系统库的问题。
既然不处理了,也没关系,自己注意就可以了。
留在这里给大家提个醒。