tst_QStringView: verify that char16_t[] args aren't ambiguous for QS/QSV overloads
They are not. Pick-to: 6.9 6.8 Task-number: QTBUG-112746 Change-Id: I2a20d68543f5914690acbcb4f214b1d98681de6a Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
parent
56faffd92b
commit
67990c16a6
@ -897,6 +897,11 @@ static void test(QString) = delete;
|
|||||||
static void test(QStringView) {}
|
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
|
// Compile-time only test: overload resolution prefers QStringView over QString
|
||||||
void tst_QStringView::overloadResolution()
|
void tst_QStringView::overloadResolution()
|
||||||
{
|
{
|
||||||
@ -905,6 +910,7 @@ void tst_QStringView::overloadResolution()
|
|||||||
QStringViewOverloadResolution::test(qcharArray);
|
QStringViewOverloadResolution::test(qcharArray);
|
||||||
QChar *qcharPointer = qcharArray;
|
QChar *qcharPointer = qcharArray;
|
||||||
QStringViewOverloadResolution::test(qcharPointer);
|
QStringViewOverloadResolution::test(qcharPointer);
|
||||||
|
QStringViewOverloadResolution::test(qcharArrayOfUnknownSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -919,6 +925,7 @@ void tst_QStringView::overloadResolution()
|
|||||||
wchar_t wchartArray[42] = {};
|
wchar_t wchartArray[42] = {};
|
||||||
QStringViewOverloadResolution::test(wchartArray);
|
QStringViewOverloadResolution::test(wchartArray);
|
||||||
QStringViewOverloadResolution::test(L"test");
|
QStringViewOverloadResolution::test(L"test");
|
||||||
|
QStringViewOverloadResolution::test(wchartArrayOfUnknownSize);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -927,6 +934,7 @@ void tst_QStringView::overloadResolution()
|
|||||||
QStringViewOverloadResolution::test(char16Array);
|
QStringViewOverloadResolution::test(char16Array);
|
||||||
char16_t *char16Pointer = char16Array;
|
char16_t *char16Pointer = char16Array;
|
||||||
QStringViewOverloadResolution::test(char16Pointer);
|
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()
|
void tst_QStringView::std_stringview_conversion()
|
||||||
{
|
{
|
||||||
static_assert(std::is_convertible_v<QStringView, std::u16string_view>);
|
static_assert(std::is_convertible_v<QStringView, std::u16string_view>);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user