diff options
Diffstat (limited to 'src/corelib/global/qfloat16.cpp')
-rw-r--r-- | src/corelib/global/qfloat16.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/corelib/global/qfloat16.cpp b/src/corelib/global/qfloat16.cpp index b7f1a559b1..f6f782e364 100644 --- a/src/corelib/global/qfloat16.cpp +++ b/src/corelib/global/qfloat16.cpp @@ -7,7 +7,10 @@ #include <cmath> // for fpclassify()'s return values #include <QtCore/qdatastream.h> +#include <QtCore/qmetatype.h> +#include <QtCore/qtextstream.h> +QT_DECL_METATYPE_EXTERN(qfloat16, Q_CORE_EXPORT) QT_BEGIN_NAMESPACE QT_IMPL_METATYPE_EXTERN(qfloat16) @@ -20,6 +23,15 @@ QT_IMPL_METATYPE_EXTERN(qfloat16) \inheaderfile QFloat16 \brief Provides 16-bit floating point support. + \compares partial + \compareswith partial float double {long double} qint8 quint8 qint16 quint16 \ + qint32 quint32 long {unsigned long} qint64 quint64 + \endcompareswith + \compareswith partial qint128 quint128 + Comparison with 128-bit integral types is only supported if Qt provides + these types. + \endcompareswith + The \c qfloat16 class provides support for half-precision (16-bit) floating point data. It is fully compliant with IEEE 754 as a storage type. This implies that any arithmetic operation on a \c qfloat16 instance results in @@ -360,6 +372,19 @@ Q_CORE_EXPORT void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype l out[i] = float(in[i]); } +/*! + \fn size_t qfloat16::qHash(qfloat16 key, size_t seed) + \since 6.5.3 + + Returns the hash value for the \a key, using \a seed to seed the + calculation. + + \note In Qt versions before 6.5, this operation was provided by the + qHash(float) overload. In Qt versions 6.5.0 to 6.5.2, this functionality + was broken in various ways. In Qt versions 6.5.3 and 6.6 onwards, this + overload restores the Qt 6.4 behavior. +*/ + #ifndef QT_NO_DATASTREAM /*! \fn qfloat16::operator<<(QDataStream &ds, qfloat16 f) @@ -395,6 +420,19 @@ QDataStream &operator>>(QDataStream &ds, qfloat16 &f) } #endif +QTextStream &operator>>(QTextStream &ts, qfloat16 &f16) +{ + float f; + ts >> f; + f16 = qfloat16(f); + return ts; +} + +QTextStream &operator<<(QTextStream &ts, qfloat16 f) +{ + return ts << float(f); +} + QT_END_NAMESPACE #include "qfloat16tables.cpp" |