diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 30da12c95b1..a2767396a89 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -173,20 +173,20 @@ static std::optional qConvertToNumber(const QVariant::Private *d, boo return std::nullopt; } -static std::optional qConvertToRealNumber(const QVariant::Private *d) +static std::optional qConvertToRealNumber(const QVariant::Private *d) { bool ok; switch (d->typeInterface()->typeId) { case QMetaType::QString: if (double r = d->get().toDouble(&ok); ok) - return qreal(r); + return r; return std::nullopt; case QMetaType::Double: - return qreal(d->get()); + return d->get(); case QMetaType::Float: - return qreal(d->get()); + return double(d->get()); case QMetaType::Float16: - return qreal(d->get()); + return double(d->get()); case QMetaType::ULongLong: case QMetaType::UInt: case QMetaType::UChar: @@ -194,7 +194,7 @@ static std::optional qConvertToRealNumber(const QVariant::Private *d) case QMetaType::Char32: case QMetaType::UShort: case QMetaType::ULong: - return qreal(qMetaTypeUNumber(d)); + return double(qMetaTypeUNumber(d)); #ifndef QT_BOOTSTRAPPED case QMetaType::QCborValue: return d->get().toDouble(); @@ -204,7 +204,7 @@ static std::optional qConvertToRealNumber(const QVariant::Private *d) default: // includes enum conversion as well as invalid types if (std::optional l = qConvertToNumber(d)) - return qreal(*l); + return double(*l); return std::nullopt; } } @@ -2372,15 +2372,15 @@ static QPartialOrdering numericCompare(const QVariant::Private *d1, const QVaria if (promotedType != QMetaType::QReal) return integralCompare(promotedType, d1, d2); - // qreal comparisons - std::optional r1 = qConvertToRealNumber(d1); - std::optional r2 = qConvertToRealNumber(d2); + // floating point comparison + const auto r1 = qConvertToRealNumber(d1); + const auto r2 = qConvertToRealNumber(d2); if (!r1 || !r2) return QPartialOrdering::Unordered; if (*r1 == *r2) return QPartialOrdering::Equivalent; - return spaceShip(*r1, *r2); + return spaceShip(*r1, *r2); } #ifndef QT_BOOTSTRAPPED