diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2017-04-24 11:31:00 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2017-04-28 16:41:26 +0000 |
commit | 5f3d6ce5709466d08b11b6f2c8608d131e7c3f43 (patch) | |
tree | 8823ae65091a687569498ae723bfcd11c045707c /src/corelib/tools | |
parent | cac2fc81b75f60d84b850fec81b432b020e89ed3 (diff) |
QString/Ref: add startsWith/endsWith(QStringView) overloads
[ChangeLog][QtCore][QString/QStringRef] Added startsWith(), endsWith()
overloads taking QStringView.
Change-Id: Ice6332492d19fd7477d5ac43ecbf6b70175b23ca
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qstring.cpp | 46 | ||||
-rw-r--r-- | src/corelib/tools/qstring.h | 21 |
2 files changed, 65 insertions, 2 deletions
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index d6a87378ee..32847933c6 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -4536,6 +4536,7 @@ QString QString::mid(int position, int n) const \sa endsWith(), left(), right(), mid(), chop(), truncate() */ +#if QT_STRINGVIEW_LEVEL < 2 /*! Returns \c true if the string starts with \a s; otherwise returns \c false. @@ -4551,6 +4552,7 @@ bool QString::startsWith(const QString& s, Qt::CaseSensitivity cs) const { return qt_starts_with(*this, s, cs); } +#endif /*! \overload startsWith() @@ -4571,6 +4573,7 @@ bool QString::startsWith(QChar c, Qt::CaseSensitivity cs) const return qt_starts_with(*this, c, cs); } +#if QT_STRINGVIEW_LEVEL < 2 /*! \since 4.8 \overload @@ -4586,8 +4589,24 @@ bool QString::startsWith(const QStringRef &s, Qt::CaseSensitivity cs) const { return qt_starts_with(*this, s, cs); } +#endif /*! + \fn bool QString::startsWith(QStringView str, Qt::CaseSensitivity cs) const + \since 5.10 + \overload + + Returns \c true if the string starts with the string-view \a str; + otherwise returns \c false. + + If \a cs is Qt::CaseSensitive (default), the search is case-sensitive; + otherwise the search is case insensitive. + + \sa endsWith() +*/ + +#if QT_STRINGVIEW_LEVEL < 2 +/*! Returns \c true if the string ends with \a s; otherwise returns \c false. @@ -4618,7 +4637,20 @@ bool QString::endsWith(const QStringRef &s, Qt::CaseSensitivity cs) const { return qt_ends_with(*this, s, cs); } +#endif // QT_STRINGVIEW_LEVEL < 2 + +/*! + \fn bool QString::endsWith(QStringView str, Qt::CaseSensitivity cs) const + \since 5.10 + \overload endsWith() + Returns \c true if the string ends with the string view \a str; + otherwise returns \c false. + + If \a cs is Qt::CaseSensitive (default), the search is case + sensitive; otherwise the search is case insensitive. + \sa startsWith() +*/ /*! \overload endsWith() @@ -10665,6 +10697,13 @@ bool QStringRef::startsWith(QLatin1String str, Qt::CaseSensitivity cs) const } /*! + \fn bool QStringRef::startsWith(QStringView str, Qt::CaseSensitivity cs) const + \since 5.10 + \overload startsWith() + \sa QString::startsWith(), endsWith() +*/ + +/*! \since 4.8 \overload startsWith() \sa QString::startsWith(), endsWith() @@ -10734,6 +10773,13 @@ bool QStringRef::endsWith(QLatin1String str, Qt::CaseSensitivity cs) const } /*! + \fn bool QStringRef::endsWith(QStringView str, Qt::CaseSensitivity cs) const + \since 5.10 + \overload endsWith() + \sa QString::endsWith(), startsWith() +*/ + +/*! \since 4.8 \overload endsWith() \sa QString::endsWith(), endsWith() diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index 2b47883598..108021cfc4 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -355,12 +355,21 @@ public: Q_REQUIRED_RESULT QStringRef rightRef(int n) const; Q_REQUIRED_RESULT QStringRef midRef(int position, int n = -1) const; +#if QT_STRINGVIEW_LEVEL < 2 bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#endif + Q_REQUIRED_RESULT bool startsWith(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_DECL_NOTHROW + { return qStartsWith(*this, s, cs); } bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + +#if QT_STRINGVIEW_LEVEL < 2 bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#endif + Q_REQUIRED_RESULT bool endsWith(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_DECL_NOTHROW + { return qEndsWith(*this, s, cs); } bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; @@ -1445,15 +1454,23 @@ public: bool isRightToLeft() const; - bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT bool startsWith(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_DECL_NOTHROW + { return qStartsWith(*this, s, cs); } bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#if QT_STRINGVIEW_LEVEL < 2 + bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#endif - bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT bool endsWith(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_DECL_NOTHROW + { return qEndsWith(*this, s, cs); } bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#if QT_STRINGVIEW_LEVEL < 2 + bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#endif inline QStringRef &operator=(const QString *string); |