diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2017-04-06 19:36:47 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2017-04-07 08:32:32 +0000 |
commit | 399ab058c94978b40876e42b5b677d392f2e33f5 (patch) | |
tree | ae1d0920f45e63d9c65fb91c0a765c981c45cde9 /tests/auto/corelib/tools/containerapisymmetry | |
parent | 5dc1e08c8c602738f6a827cea0de44683c7bbd0b (diff) |
Add front()/back() to QString, QStringRef, QByteArray and QLatin1String
These STL-compatibility functions are present on our generic
containers, but not on the string classes.
[ChangeLog][QtCore][QString/QStringRef/QByteArray/QLatin1String] Added
front() and back() for STL compatibility.
Change-Id: I536019396b319abd1e2daf9c64ebab4e7a35b334
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools/containerapisymmetry')
-rw-r--r-- | tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp b/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp index d7ec624804..3b8111f1a3 100644 --- a/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp +++ b/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp @@ -28,8 +28,10 @@ #include <QtTest/QtTest> +#include "qbytearray.h" #include "qlinkedlist.h" #include "qlist.h" +#include "qstring.h" #include "qvarlengtharray.h" #include "qvector.h" @@ -49,6 +51,11 @@ private Q_SLOTS: void front_back_QList() { front_back_impl<QList<qintptr>>(); } void front_back_QLinkedList() { front_back_impl<QLinkedList<int>>(); } void front_back_QVarLengthArray() { front_back_impl<QVarLengthArray<int>>(); } + void front_back_QString() { front_back_impl<QString>(); } + void front_back_QStringRef() { front_back_impl<QStringRef>(); } + void front_back_QStringView() { front_back_impl<QStringView>(); } + void front_back_QLatin1String() { front_back_impl<QLatin1String>(); } + void front_back_QByteArray() { front_back_impl<QByteArray>(); } }; template <typename Container> @@ -61,7 +68,16 @@ Container make(int size) return c; } +static QString s_string = QStringLiteral("\1\2\3\4\5\6\7"); + +template <> QStringRef make(int size) { return s_string.leftRef(size); } +template <> QStringView make(int size) { return QStringView(s_string).left(size); } +template <> QLatin1String make(int size) { return QLatin1String("\1\2\3\4\5\6\7", size); } + template <typename T> T clean(T &&t) { return std::forward<T>(t); } +inline QChar clean(QCharRef ch) { return ch; } +inline char clean(QByteRef ch) { return ch; } +inline char clean(QLatin1Char ch) { return ch.toLatin1(); } template <typename Container> void tst_ContainerApiSymmetry::front_back_impl() const |