diff options
author | Marc Mutz <marc.mutz@qt.io> | 2021-11-16 14:59:30 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2021-11-19 03:32:20 +0100 |
commit | b7f40416692c357b440c885fe18fa70e2a829820 (patch) | |
tree | f97d1c7c0eed62f36b6f310395774b6c40203422 /tests/auto/corelib | |
parent | 8283df4d8cee7e80ce36e724ae0824fd1e00cb24 (diff) |
QAnyStringView: fix broken implicit conversion from QStringBuilder
Need to use QConcatenable<>::ConvertTo for SFINAE, the forwarded type
alias in QStringBuilder itself doesn't work.
[ChangeLog][QtCore][QAnyStringView/QStringBuilder] Implicit conversion
from QStringBuilder to QAnyStringView now works as advertised.
Pick-to: 6.2
Fixes: QTBUG-98138
Change-Id: I1c300675cf43b13017bc56398ae5d8c1c51e64fe
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r-- | tests/auto/corelib/text/qanystringview/tst_qanystringview.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/corelib/text/qanystringview/tst_qanystringview.cpp b/tests/auto/corelib/text/qanystringview/tst_qanystringview.cpp index bbc0bdacfd..e5e3ac9f84 100644 --- a/tests/auto/corelib/text/qanystringview/tst_qanystringview.cpp +++ b/tests/auto/corelib/text/qanystringview/tst_qanystringview.cpp @@ -30,6 +30,7 @@ #include <QChar> #include <QList> #include <QString> +#include <QStringBuilder> #include <QVarLengthArray> #include <QTest> @@ -230,6 +231,12 @@ static_assert(CanConvert<std::array<wchar_t, 123>> == CanConvertFromWCharT); static_assert(!CanConvert<std::deque<wchar_t>>); static_assert(!CanConvert<std::list<wchar_t>>); +// +// QStringBuilder +// + +static_assert(CanConvert<QStringBuilder<QString, QString>>); + class tst_QAnyStringView : public QObject { @@ -303,9 +310,13 @@ private Q_SLOTS: void fromChar16TContainers() const { fromContainers<char16_t>(); } void fromWCharTContainers() const { ONLY_WIN(fromContainers<wchar_t>()); } + void fromQStringBuilder_QString_QString() const { fromQStringBuilder(u"1"_qs % u"2"_qs, u"12"); } + void comparison(); private: + template <typename StringBuilder> + void fromQStringBuilder(StringBuilder &&sb, QStringView expected) const; template <typename Char> void fromArray() const; template <typename String> @@ -419,6 +430,13 @@ void tst_QAnyStringView::basics() const QVERIFY(!(sv2 != sv1)); } +template <typename StringBuilder> +void tst_QAnyStringView::fromQStringBuilder(StringBuilder &&sb, QStringView expected) const +{ + auto toAnyStringView = [](QAnyStringView sv) { return sv; }; + QCOMPARE(toAnyStringView(std::forward<StringBuilder>(sb)), expected); +} + template <typename Char> void tst_QAnyStringView::fromArray() const { |