cyanray / mirai-cpp

本项目为 mirai-api-http 的 C++ 封装,方便使用 C++ 开发基于 mirai-api-http 插件。
GNU Affero General Public License v3.0
148 stars 38 forks source link

Cyan::UID_t未重载"<"导致编译失败 #100

Closed rikukiix closed 3 years ago

rikukiix commented 3 years ago

如题,linux gcc9.3.0下:

[build] /usr/include/c++/9/bits/stl_function.h:386:20: error: no match for ‘operator<’ (operand types are ‘const Cyan::GID_t’ and ‘const Cyan::GID_t’)
[build]   386 |       { return __x < __y; }
[build]       |                ~~~~^~~~~

MSVC16.7.5下出现类似问题。 在mirai-cpp/include/mirai/defs/qq_types.hpp中对Cyan::UID_t重载小于号后可以正常编译运行。

cyanray commented 3 years ago

感谢反馈 不过能不能提供出错的代码 是放到 map 之类的容器里会出错吗?

rikukiix commented 3 years ago

感谢反馈 不过能不能提供出错的代码 是放到 map 之类的容器里会出错吗?

是这样的,比如。。。提供的template里就有这样的问题(

cyanray commented 3 years ago

我在MSVC 16.9 和 GCC 10.2 上没有复现这个错误,可能是编译器的黑科技? 我只能简单修一下,看看有没有用。