C++ QVariant有符号/无符号比较

C++ QVariant有符号/无符号比较,c++,qt,unsigned,signed,C++,Qt,Unsigned,Signed,Qt框架的QVariant类型提供了比较运算符=,但它们在有符号/无符号整数参数不匹配时工作异常: QVariant(-1) < QVariant(0u) yields false QVariant(0u) > QVariant(-1) yields false QVariant(-1)QVariant(-1)产生错误 有人知道这是一个bug,还是有意的吗? 此运算符是否总是在有符号/无符号不匹配时返回false 顺便说一句,我正在使用Qt5.6QVariant(-1)

Qt框架的QVariant类型提供了比较运算符
=
,但它们在有符号/无符号整数参数不匹配时工作异常:

QVariant(-1) < QVariant(0u) yields false
QVariant(0u) > QVariant(-1) yields false
QVariant(-1)QVariant(-1)产生错误
有人知道这是一个bug,还是有意的吗? 此运算符是否总是在有符号/无符号不匹配时返回false

顺便说一句,我正在使用Qt5.6
QVariant(-1)
将调用
int
无符号int
的内置比较器。基本上,
(int(-1)
如果需要不同的行为,请在使用或类似方法显式比较之前转换值:
QVariant(-1).toInt()