Add QByteArrayView vs QChar and vs char16_t relational operators
This allows to remove the dummy relational operators from tst_qstringapisymmetry. Task-number: QTBUG-108805 Change-Id: I7cb3154d6fcb571cafab6b318806f74bc8300448 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
34372af708
commit
a08bafc920
|
|
@ -347,6 +347,18 @@ private:
|
|||
{ return compareThreeWay(lhs, QByteArrayView(rhs)); }
|
||||
Q_DECLARE_STRONGLY_ORDERED(QByteArrayView, const char *)
|
||||
|
||||
// defined in qstring.cpp
|
||||
static bool
|
||||
comparesEqual(const QByteArrayView &lhs, const QChar &rhs) noexcept;
|
||||
static Qt::strong_ordering
|
||||
compareThreeWay(const QByteArrayView &lhs, const QChar &rhs) noexcept;
|
||||
static bool comparesEqual(const QByteArrayView &lhs, char16_t rhs) noexcept;
|
||||
static Qt::strong_ordering compareThreeWay(const QByteArrayView &lhs, char16_t rhs) noexcept;
|
||||
#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
|
||||
Q_DECLARE_STRONGLY_ORDERED(QByteArrayView, QChar, QT_ASCII_CAST_WARN)
|
||||
Q_DECLARE_STRONGLY_ORDERED(QByteArrayView, char16_t, QT_ASCII_CAST_WARN)
|
||||
#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
|
||||
|
||||
qsizetype m_size;
|
||||
const storage_type *m_data;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6707,6 +6707,30 @@ int QString::compare_helper(const QChar *data1, qsizetype length1, const char *d
|
|||
\overload compare()
|
||||
*/
|
||||
|
||||
bool QByteArrayView::comparesEqual(const QByteArrayView &lhs, const QChar &rhs) noexcept
|
||||
{
|
||||
return QtPrivate::equalStrings(QUtf8StringView(lhs), QStringView(&rhs, 1));
|
||||
}
|
||||
|
||||
Qt::strong_ordering QByteArrayView::compareThreeWay(const QByteArrayView &lhs,
|
||||
const QChar &rhs) noexcept
|
||||
{
|
||||
const int res = QtPrivate::compareStrings(QUtf8StringView(lhs), QStringView(&rhs, 1));
|
||||
return Qt::compareThreeWay(res, 0);
|
||||
}
|
||||
|
||||
bool QByteArrayView::comparesEqual(const QByteArrayView &lhs, char16_t rhs) noexcept
|
||||
{
|
||||
return QtPrivate::equalStrings(QUtf8StringView(lhs), QStringView(&rhs, 1));
|
||||
}
|
||||
|
||||
Qt::strong_ordering QByteArrayView::compareThreeWay(const QByteArrayView &lhs,
|
||||
char16_t rhs) noexcept
|
||||
{
|
||||
const int res = QtPrivate::compareStrings(QUtf8StringView(lhs), QStringView(&rhs, 1));
|
||||
return Qt::compareThreeWay(res, 0);
|
||||
}
|
||||
|
||||
/*!
|
||||
\internal
|
||||
\since 6.8
|
||||
|
|
|
|||
|
|
@ -60,13 +60,9 @@ constexpr bool is_fake_comparator_v = false;
|
|||
MAKE_RELOP(>=, A1, A2) \
|
||||
/*end*/
|
||||
|
||||
MAKE_ALL(QByteArray, QChar)
|
||||
MAKE_ALL(QByteArray, char16_t)
|
||||
MAKE_ALL(char16_t, QByteArray)
|
||||
|
||||
MAKE_ALL(const char*, QChar)
|
||||
|
||||
MAKE_ALL(QChar, QByteArray)
|
||||
MAKE_ALL(QChar, const char*)
|
||||
|
||||
#undef MAKE_ALL
|
||||
|
|
|
|||
Loading…
Reference in New Issue