summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qvariant.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-11-04 14:39:06 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-11-28 10:59:35 -0800
commitf6f1ee63dc1fbdd1f49a18949bd44f6bb0251d1d (patch)
tree626156d38f5ca5519b75f76e4aecba045d84a24e /src/corelib/kernel/qvariant.cpp
parent5838074912905686475a2cb4ae9780c2532d424b (diff)
qfloat16: make it a built-in metatype
I've reserved the IDs for int128, uint128, bfloat16, and float128, because the mask in qvariant.cpp's qIsNumericType() requires primitives to be less than 64 to operate properly. Added a QMetaType/QDataStream test to confirm it is indeed built-in. Change-Id: I3d74c753055744deb8acfffd17247f7f57bada02 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/corelib/kernel/qvariant.cpp')
-rw-r--r--src/corelib/kernel/qvariant.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index 15b0f84f1b..75bdef2383 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -183,6 +183,8 @@ static std::optional<qreal> qConvertToRealNumber(const QVariant::Private *d)
return qreal(d->get<double>());
case QMetaType::Float:
return qreal(d->get<float>());
+ case QMetaType::Float16:
+ return qreal(d->get<qfloat16>());
case QMetaType::ULongLong:
case QMetaType::UInt:
case QMetaType::UChar:
@@ -2161,7 +2163,7 @@ static bool qIsNumericType(uint tp)
static bool qIsFloatingPoint(uint tp)
{
- return tp == QMetaType::Double || tp == QMetaType::Float;
+ return tp == QMetaType::Double || tp == QMetaType::Float || tp == QMetaType::Float16;
}
static bool canBeNumericallyCompared(const QtPrivate::QMetaTypeInterface *iface1,