QString: inline indexOf() and use a QChar overload
This is a repeat of the last commit, which did the same for QByteArray. No benchmarks in this commit, assuming the results are similar (at least for cs = Qt::CaseSensitive). Task-number: QTBUG-119750 Change-Id: Ica7a43f6147b49c187ccfffd179e1f852272af8b Reviewed-by: Marc Mutz <marc.mutz@qt.io>bb10
parent
efaa849023
commit
dfe968e970
|
|
@ -4414,14 +4414,11 @@ qsizetype QString::indexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensit
|
|||
}
|
||||
|
||||
/*!
|
||||
\fn qsizetype QString::indexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const
|
||||
\overload indexOf()
|
||||
|
||||
\include qstring.qdocinc {qstring-first-index-of} {character} {ch}
|
||||
*/
|
||||
qsizetype QString::indexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const
|
||||
{
|
||||
return qFindChar(QStringView(unicode(), size()), ch, from, cs);
|
||||
}
|
||||
|
||||
/*!
|
||||
\include qstring.qdocinc {qstring-last-index-of} {string} {str}
|
||||
|
|
@ -4516,14 +4513,11 @@ qsizetype QString::lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSe
|
|||
*/
|
||||
|
||||
/*!
|
||||
\fn qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const
|
||||
\overload lastIndexOf()
|
||||
|
||||
\include qstring.qdocinc {qstring-last-index-of} {character} {ch}
|
||||
*/
|
||||
qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const
|
||||
{
|
||||
return qLastIndexOf(QStringView(*this), ch, from, cs);
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn QString::lastIndexOf(QChar ch, Qt::CaseSensitivity) const
|
||||
|
|
@ -9643,6 +9637,11 @@ bool QtPrivate::endsWith(QLatin1StringView haystack, QLatin1StringView needle, Q
|
|||
return qt_ends_with_impl(haystack, needle, cs);
|
||||
}
|
||||
|
||||
qsizetype QtPrivate::findString(QStringView haystack0, qsizetype from, char16_t needle0, Qt::CaseSensitivity cs) noexcept
|
||||
{
|
||||
return qFindChar(haystack0, needle0, from, cs);
|
||||
}
|
||||
|
||||
qsizetype QtPrivate::findString(QStringView haystack0, qsizetype from, QStringView needle0, Qt::CaseSensitivity cs) noexcept
|
||||
{
|
||||
const qsizetype l = haystack0.size();
|
||||
|
|
@ -9802,6 +9801,11 @@ qsizetype QtPrivate::findString(QLatin1StringView haystack, qsizetype from, QLat
|
|||
return matcher.indexIn(haystack, from);
|
||||
}
|
||||
|
||||
qsizetype QtPrivate::lastIndexOf(QStringView haystack, qsizetype from, char16_t needle, Qt::CaseSensitivity cs) noexcept
|
||||
{
|
||||
return qLastIndexOf(haystack, QChar(needle), from, cs);
|
||||
}
|
||||
|
||||
qsizetype QtPrivate::lastIndexOf(QStringView haystack, qsizetype from, QStringView needle, Qt::CaseSensitivity cs) noexcept
|
||||
{
|
||||
return qLastIndexOf(haystack, from, needle, cs);
|
||||
|
|
|
|||
|
|
@ -273,14 +273,16 @@ public:
|
|||
static QString vasprintf(const char *format, va_list ap) Q_ATTRIBUTE_FORMAT_PRINTF(1, 0);
|
||||
static QString asprintf(const char *format, ...) Q_ATTRIBUTE_FORMAT_PRINTF(1, 2);
|
||||
|
||||
[[nodiscard]] qsizetype indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
[[nodiscard]] QT_CORE_INLINE_SINCE(6, 7)
|
||||
qsizetype indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
[[nodiscard]] qsizetype indexOf(QLatin1StringView s, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
[[nodiscard]] qsizetype indexOf(const QString &s, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
[[nodiscard]] qsizetype indexOf(QStringView s, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return QtPrivate::findString(*this, from, s, cs); }
|
||||
[[nodiscard]] qsizetype lastIndexOf(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return lastIndexOf(c, -1, cs); }
|
||||
[[nodiscard]] qsizetype lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
[[nodiscard]] QT_CORE_INLINE_SINCE(6, 7)
|
||||
qsizetype lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
[[nodiscard]] qsizetype lastIndexOf(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
|
||||
{ return lastIndexOf(s, size(), cs); }
|
||||
[[nodiscard]] qsizetype lastIndexOf(QLatin1StringView s, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
|
|
@ -1462,6 +1464,16 @@ quint64 QString::toULongLong(bool *ok, int base) const
|
|||
return toIntegral_helper<qulonglong>(*this, ok, base);
|
||||
}
|
||||
#endif
|
||||
#if QT_CORE_INLINE_IMPL_SINCE(6, 7)
|
||||
qsizetype QString::indexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const
|
||||
{
|
||||
return qToStringViewIgnoringNull(*this).indexOf(ch, from, cs);
|
||||
}
|
||||
qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const
|
||||
{
|
||||
return qToStringViewIgnoringNull(*this).lastIndexOf(ch, from, cs);
|
||||
}
|
||||
#endif
|
||||
|
||||
namespace QtPrivate {
|
||||
// used by qPrintable() and qUtf8Printable() macros
|
||||
|
|
|
|||
|
|
@ -52,11 +52,13 @@ namespace QtPrivate {
|
|||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION bool endsWith(QLatin1StringView haystack, QStringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION bool endsWith(QLatin1StringView haystack, QLatin1StringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype findString(QStringView haystack, qsizetype from, char16_t needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype findString(QStringView haystack, qsizetype from, QStringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype findString(QStringView haystack, qsizetype from, QLatin1StringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype findString(QLatin1StringView haystack, qsizetype from, QStringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype findString(QLatin1StringView haystack, qsizetype from, QLatin1StringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype lastIndexOf(QStringView haystack, qsizetype from, char16_t needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype lastIndexOf(QStringView haystack, qsizetype from, QStringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype lastIndexOf(QStringView haystack, qsizetype from, QLatin1StringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
[[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype lastIndexOf(QLatin1StringView haystack, qsizetype from, QStringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ public:
|
|||
{ return QtPrivate::endsWith(*this, QStringView(&c, 1), cs); }
|
||||
|
||||
[[nodiscard]] qsizetype indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return QtPrivate::findString(*this, from, QStringView(&c, 1), cs); }
|
||||
{ return QtPrivate::findString(*this, from, c.unicode(), cs); }
|
||||
[[nodiscard]] qsizetype indexOf(QStringView s, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return QtPrivate::findString(*this, from, s, cs); }
|
||||
[[nodiscard]] inline qsizetype indexOf(QLatin1StringView s, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept;
|
||||
|
|
@ -283,7 +283,7 @@ public:
|
|||
[[nodiscard]] qsizetype lastIndexOf(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return lastIndexOf(c, -1, cs); }
|
||||
[[nodiscard]] qsizetype lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return QtPrivate::lastIndexOf(*this, from, QStringView(&c, 1), cs); }
|
||||
{ return QtPrivate::lastIndexOf(*this, from, c.unicode(), cs); }
|
||||
[[nodiscard]] qsizetype lastIndexOf(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
{ return lastIndexOf(s, size(), cs); }
|
||||
[[nodiscard]] qsizetype lastIndexOf(QStringView s, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept
|
||||
|
|
|
|||
Loading…
Reference in New Issue