为什么 QVariant::type() return 应该被解释为 QMetaType::Type 而 QVariant::Type?
Why does QVariant::type() return a QVariant::Type when it should be interpreted as a QMetaType::Type?
关于 QVariant::type() 的文档说:
Returns the storage type of the value stored in the variant. Although this function is declared as returning QVariant::Type, the return value should be interpreted as QMetaType::Type. In particular, QVariant::UserType is returned here only if the value is equal or greater than QMetaType::User.
好吧,如果是这样,他们为什么不首先将其声明为 returning QMetaType::Type
?这样看来只会带来不必要的混乱。
文档没有解释将函数声明为 return 错误类型的原因,有人知道这些原因可能是什么吗?
首先是 QVariant,它带有支持类型的 type
枚举。
然后 QMetaType 有了它自己的 type
支持类型的枚举。
所以 QVariant 被更改,类型对齐,因此它自己的 type
枚举可以被弃用,并且它将依赖于 QMetaType 来获取类型信息。但是,出于源兼容性原因,无法更改 return 类型。
Qt6 的 return 类型可能会更改,但源代码不兼容的更改视情况而定,因此必须讨论更改的影响和好处。
关于 QVariant::type() 的文档说:
Returns the storage type of the value stored in the variant. Although this function is declared as returning QVariant::Type, the return value should be interpreted as QMetaType::Type. In particular, QVariant::UserType is returned here only if the value is equal or greater than QMetaType::User.
好吧,如果是这样,他们为什么不首先将其声明为 returning QMetaType::Type
?这样看来只会带来不必要的混乱。
文档没有解释将函数声明为 return 错误类型的原因,有人知道这些原因可能是什么吗?
首先是 QVariant,它带有支持类型的 type
枚举。
然后 QMetaType 有了它自己的 type
支持类型的枚举。
所以 QVariant 被更改,类型对齐,因此它自己的 type
枚举可以被弃用,并且它将依赖于 QMetaType 来获取类型信息。但是,出于源兼容性原因,无法更改 return 类型。
Qt6 的 return 类型可能会更改,但源代码不兼容的更改视情况而定,因此必须讨论更改的影响和好处。