diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2022-11-04 14:39:06 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-11-28 10:59:35 -0800 |
commit | f6f1ee63dc1fbdd1f49a18949bd44f6bb0251d1d (patch) | |
tree | 626156d38f5ca5519b75f76e4aecba045d84a24e /src/corelib/kernel/qvariant.cpp | |
parent | 5838074912905686475a2cb4ae9780c2532d424b (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.cpp | 4 |
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, |