tst_QStringView: verify that char16_t[] args aren't ambiguous for QS/QSV overloads

They are not.

Task-number: QTBUG-112746
Change-Id: I2a20d68543f5914690acbcb4f214b1d98681de6a
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
(cherry picked from commit 67990c16a6b631c1d809d1ad656fc941293b3f83)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 31e30122963796d454d0351da92b0a608f305e50)
This commit is contained in:
Marc Mutz 2024-12-09 11:12:16 +01:00 committed by Qt Cherry-pick Bot
parent e11edced7e
commit 3aef5b9457

View File

@ -897,6 +897,11 @@ static void test(QString) = delete;
static void test(QStringView) {}
}
extern const QChar qcharArrayOfUnknownSize[];
extern const char16_t char16ArrayOfUnknownSize[];
[[maybe_unused]]
extern const wchar_t wchartArrayOfUnknownSize[];
// Compile-time only test: overload resolution prefers QStringView over QString
void tst_QStringView::overloadResolution()
{
@ -905,6 +910,7 @@ void tst_QStringView::overloadResolution()
QStringViewOverloadResolution::test(qcharArray);
QChar *qcharPointer = qcharArray;
QStringViewOverloadResolution::test(qcharPointer);
QStringViewOverloadResolution::test(qcharArrayOfUnknownSize);
}
{
@ -919,6 +925,7 @@ void tst_QStringView::overloadResolution()
wchar_t wchartArray[42] = {};
QStringViewOverloadResolution::test(wchartArray);
QStringViewOverloadResolution::test(L"test");
QStringViewOverloadResolution::test(wchartArrayOfUnknownSize);
}
#endif
@ -927,6 +934,7 @@ void tst_QStringView::overloadResolution()
QStringViewOverloadResolution::test(char16Array);
char16_t *char16Pointer = char16Array;
QStringViewOverloadResolution::test(char16Pointer);
QStringViewOverloadResolution::test(char16ArrayOfUnknownSize);
}
{
@ -937,6 +945,10 @@ void tst_QStringView::overloadResolution()
}
}
const QChar qcharArrayOfUnknownSize[] = {u'a', u'b', u'c', u'\0', u'd', u'e', u'f'};
const char16_t char16ArrayOfUnknownSize[] = u"abc\0def";
const wchar_t wchartArrayOfUnknownSize[] = L"abc\0def";
void tst_QStringView::std_stringview_conversion()
{
static_assert(std::is_convertible_v<QStringView, std::u16string_view>);