diff --git a/libcxx/include/locale b/libcxx/include/locale --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -2385,7 +2385,9 @@ /**/ _LIBCPP_TIME_GET_STORAGE_EXPLICIT_INSTANTIATION(char) +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS _LIBCPP_TIME_GET_STORAGE_EXPLICIT_INSTANTIATION(wchar_t) +#endif #undef _LIBCPP_TIME_GET_STORAGE_EXPLICIT_INSTANTIATION template > @@ -2445,8 +2447,10 @@ ~__time_put(); void __do_put(char* __nb, char*& __ne, const tm* __tm, char __fmt, char __mod) const; +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS void __do_put(wchar_t* __wb, wchar_t*& __we, const tm* __tm, char __fmt, char __mod) const; +#endif }; template > diff --git a/libcxx/include/streambuf b/libcxx/include/streambuf --- a/libcxx/include/streambuf +++ b/libcxx/include/streambuf @@ -489,10 +489,12 @@ } extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_streambuf; -extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_streambuf; - extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ios; + +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS +extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_streambuf; extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ios; +#endif _LIBCPP_END_NAMESPACE_STD diff --git a/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.fail.cpp b/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.fail.cpp --- a/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.fail.cpp +++ b/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.fail.cpp @@ -13,6 +13,8 @@ // // The char type of the stream and the char_type of the traits have to match +// UNSUPPORTED: no-wide-characters + #include int main(int, char**) diff --git a/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.fail.cpp b/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.fail.cpp --- a/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.fail.cpp +++ b/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.fail.cpp @@ -13,6 +13,8 @@ // The char type of the stream and the char_type of the traits have to match +// UNSUPPORTED: no-wide-characters + #include int main(int, char**) diff --git a/libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h b/libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h --- a/libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h +++ b/libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h @@ -65,6 +65,8 @@ #include #include +#include "test_macros.h" + template struct data { /// The input to parse. @@ -684,6 +686,7 @@ {"\U00002701\U0000200d\U00002701", {9985}, {9}}, {"\U00000061\U0000200d\U00002701", {97, 9985}, {4, 7}}}}; +#ifndef TEST_HAS_NO_WIDE_CHARACTERS /// The data for UTF-16. /// /// Note that most of the data for the UTF-16 and UTF-32 are identical. However @@ -1901,5 +1904,6 @@ {L"\U00000061\U0000200d\U0001f6d1", {97, 128721}, {2, 3}}, {L"\U00002701\U0000200d\U00002701", {9985}, {3}}, {L"\U00000061\U0000200d\U00002701", {97, 9985}, {2, 3}}}}; +#endif // TEST_HAS_NO_WIDE_CHARACTERS #endif // LIBCXX_TEST_STD_UTILITIES_FORMAT_FORMAT_STRING_FORMAT_STRING_STD_EXTENDED_GRAPHEME_CLUSTER_H diff --git a/libcxx/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/default.pass.cpp b/libcxx/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/default.pass.cpp --- a/libcxx/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/default.pass.cpp +++ b/libcxx/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/default.pass.cpp @@ -28,7 +28,9 @@ int main(int, char**) { test(); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test(); +#endif - return 0; + return 0; } diff --git a/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp --- a/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp @@ -44,10 +44,13 @@ std::basic_string{std::declval(), std::declval(), std::declval()} )> : std::true_type { }; -static_assert( CanDeduce>::value); +static_assert( CanDeduce>::value); static_assert(!CanDeduce>::value); static_assert(!CanDeduce>::value); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS +static_assert( CanDeduce>::value); static_assert(!CanDeduce>::value); +#endif TEST_CONSTEXPR_CXX20 bool test() { { @@ -70,6 +73,7 @@ assert(s1.size() == 10); assert(s1.compare(0, s1.size(), s, s1.size()) == 0); } +#ifndef TEST_HAS_NO_WIDE_CHARACTERS { const wchar_t* s = L"12345678901234"; std::basic_string s1{s, s+10, test_allocator{}}; @@ -80,6 +84,7 @@ assert(s1.size() == 10); assert(s1.compare(0, s1.size(), s, s1.size()) == 0); } +#endif { const char16_t* s = u"12345678901234"; std::basic_string s1{s, s+10, min_allocator{}}; diff --git a/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp b/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp --- a/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp +++ b/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp @@ -9,6 +9,8 @@ // // The strings's value type must be the same as the traits's char_type +// UNSUPPORTED: no-wide-characters + #include std::basic_string > s; // expected-error@*:* {{traits_type::char_type must be the same type as CharT}} diff --git a/libcxx/test/std/strings/basic.string/types.pass.cpp b/libcxx/test/std/strings/basic.string/types.pass.cpp --- a/libcxx/test/std/strings/basic.string/types.pass.cpp +++ b/libcxx/test/std/strings/basic.string/types.pass.cpp @@ -74,7 +74,9 @@ int main(int, char**) { test, test_allocator >(); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test, std::allocator >(); +#endif static_assert((std::is_same::traits_type, std::char_traits >::value), ""); static_assert((std::is_same::allocator_type, diff --git a/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp @@ -35,8 +35,10 @@ test ( "ABCDE", 5 ); test ( "a", 1 ); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"ABCDE", 5 ); test ( L"a", 1 ); +#endif #if TEST_STD_VER >= 11 test ( u"ABCDE", 5 ); diff --git a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp @@ -32,8 +32,10 @@ assert ( test ( "ABCDE", 5 )); assert ( test ( "a", 1 )); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS assert ( test ( L"ABCDE", 5 )); assert ( test ( L"a", 1 )); +#endif #if TEST_STD_VER >= 11 assert ( test ( u"ABCDE", 5 )); diff --git a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp @@ -33,8 +33,10 @@ test ( "ABCDE", 5 ); test ( "a", 1 ); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"ABCDE", 5 ); test ( L"a", 1 ); +#endif #if TEST_STD_VER >= 11 test ( u"ABCDE", 5 ); diff --git a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp @@ -32,8 +32,10 @@ assert ( test ( "ABCDE", 5 )); assert ( test ( "a", 1 )); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS assert ( test ( L"ABCDE", 5 )); assert ( test ( L"a", 1 )); +#endif #if TEST_STD_VER >= 11 assert ( test ( u"ABCDE", 5 )); diff --git a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp @@ -34,8 +34,10 @@ test ( "ABCDE", 5 ); test ( "a", 1 ); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"ABCDE", 5 ); test ( L"a", 1 ); +#endif #if TEST_STD_VER >= 11 test ( u"ABCDE", 5 ); diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp @@ -45,9 +45,11 @@ test ( "A" ); test ( "" ); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"QBCDE" ); test ( L"A" ); test ( L"" ); +#endif #if TEST_STD_VER >= 11 test ( u"QBCDE" ); diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp @@ -45,6 +45,7 @@ } #endif +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"QBCDE", 5 ); test ( L"QBCDE", 2 ); test ( L"", 0 ); @@ -56,6 +57,7 @@ static_assert ( sv1.data() == s, "" ); } #endif +#endif // TEST_HAS_NO_WIDE_CHARACTERS #if TEST_STD_VER >= 11 test ( u"QBCDE", 5 ); diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp @@ -55,6 +55,7 @@ test("abcdefghijklmnopqrst", "abcdefghijklmnopqrst", 0); } +#ifndef TEST_HAS_NO_WIDE_CHARACTERS { test(L"", L"", 0); test(L"", L"abcde", -5); @@ -73,6 +74,7 @@ test(L"abcdefghijklmnopqrst", L"abcdefghij", 10); test(L"abcdefghijklmnopqrst", L"abcdefghijklmnopqrst", 0); } +#endif #if TEST_STD_VER >= 11 { diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp @@ -381,6 +381,7 @@ test("abcdefghijklmnopqrst", 0, static_cast(-1), "abcdefghijklmnopqrst", 0); } +#ifndef TEST_HAS_NO_WIDE_CHARACTERS { test(L"", 0, 0, L"", 0); test(L"", 0, 0, L"abcde", -5); @@ -399,6 +400,7 @@ test(L"abcdefghijklmnopqrst", 0, 12, L"abcdefghij", 10); test(L"abcdefghijklmnopqrst", 0, static_cast(-1), L"abcdefghijklmnopqrst", 0); } +#endif #if TEST_STD_VER >= 11 { diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp @@ -368,12 +368,14 @@ test("ABCde", 2, 4, "abcde", -1); } +#ifndef TEST_HAS_NO_WIDE_CHARACTERS { test(L"abcde", 5, 1, L"", 0); test(L"abcde", 2, 4, L"", 3); test(L"abcde", 2, 4, L"abcde", 2); test(L"ABCde", 2, 4, L"abcde", -1); } +#endif #if TEST_STD_VER >= 11 { diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp @@ -1315,6 +1315,7 @@ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, -10); } +#ifndef TEST_HAS_NO_WIDE_CHARACTERS { test(L"", 0, 0, L"abcde", 0, 0); test(L"", 0, 0, L"abcde", 1, -1); @@ -1322,6 +1323,7 @@ test(L"abcdefghijklmnopqrst", 21, 0, L"abcde", 1, 0); test(L"abcdefghijklmnopqrst", 10, 0, L"abcdefghij", 10, -10); } +#endif #if TEST_STD_VER >= 11 { diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp @@ -5814,12 +5814,14 @@ test("ABCde", 2, 4, "abcde", 2, 4, -1); } +#ifndef TEST_HAS_NO_WIDE_CHARACTERS { test(L"abcde", 5, 1, L"", 0, 0, 0); test(L"abcde", 2, 4, L"", 0, 0, 3); test(L"abcde", 2, 4, L"abcde", 3, 4, -2); test(L"ABCde", 2, 4, L"abcde", 2, 4, -1); } +#endif #if TEST_STD_VER >= 11 { diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp @@ -55,6 +55,7 @@ test("abcdefghijklmnopqrst", "abcdefghij", 10); test("abcdefghijklmnopqrst", "abcdefghijklmnopqrst", 0); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test(L"", L"", 0); test(L"", L"abcde", -5); test(L"", L"abcdefghij", -10); @@ -71,6 +72,7 @@ test(L"abcdefghijklmnopqrst", L"abcde", 15); test(L"abcdefghijklmnopqrst", L"abcdefghij", 10); test(L"abcdefghijklmnopqrst", L"abcdefghijklmnopqrst", 0); +#endif #if TEST_STD_VER >= 11 test(u"", u"", 0); diff --git a/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp @@ -93,10 +93,12 @@ test ( "a" ); test ( "" ); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" ); test ( L"ABCDE" ); test ( L"a" ); test ( L"" ); +#endif #if TEST_STD_VER >= 11 test ( u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" ); @@ -111,7 +113,9 @@ #endif test_constexpr_copy("ABCDE", "GHIJK", "BCDJK"); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test_constexpr_copy(L"ABCDE", L"GHIJK", L"BCDJK"); +#endif #if TEST_STD_VER >= 11 test_constexpr_copy(u"ABCDE", u"GHIJK", u"BCDJK"); test_constexpr_copy(U"ABCDE", U"GHIJK", U"BCDJK"); @@ -121,7 +125,9 @@ #endif #if TEST_STD_VER >= 20 static_assert(test_constexpr_copy("ABCDE", "GHIJK", "BCDJK")); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS static_assert(test_constexpr_copy(L"ABCDE", L"GHIJK", L"BCDJK")); +#endif static_assert(test_constexpr_copy(u"ABCDE", u"GHIJK", u"BCDJK")); static_assert(test_constexpr_copy(U"ABCDE", U"GHIJK", U"BCDJK")); static_assert(test_constexpr_copy(u8"ABCDE", u8"GHIJK", u8"BCDJK")); diff --git a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp @@ -77,10 +77,12 @@ test ( "a" ); test ( "" ); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test ( L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" ); test ( L"ABCDE" ); test ( L"a" ); test ( L"" ); +#endif #if TEST_STD_VER >= 11 test ( u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" ); diff --git a/libcxx/test/std/strings/string.view/types.pass.cpp b/libcxx/test/std/strings/string.view/types.pass.cpp --- a/libcxx/test/std/strings/string.view/types.pass.cpp +++ b/libcxx/test/std/strings/string.view/types.pass.cpp @@ -72,7 +72,9 @@ int main(int, char**) { test >(); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test >(); +#endif #ifndef TEST_HAS_NO_CHAR8_T test >(); #endif diff --git a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/advance_to.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/advance_to.pass.cpp --- a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/advance_to.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/advance_to.pass.cpp @@ -50,7 +50,9 @@ constexpr bool test() { test("abc"); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test(L"abc"); +#endif #ifndef TEST_HAS_NO_CHAR8_T test(u8"abc"); #endif diff --git a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/begin.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/begin.pass.cpp --- a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/begin.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/begin.pass.cpp @@ -36,7 +36,9 @@ constexpr bool test() { test("abc"); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test(L"abc"); +#endif #ifndef TEST_HAS_NO_CHAR8_T test(u8"abc"); #endif diff --git a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/ctor.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/ctor.pass.cpp --- a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/ctor.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/ctor.pass.cpp @@ -57,7 +57,9 @@ constexpr bool test() { test("abc"); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test(L"abc"); +#endif #ifndef TEST_HAS_NO_CHAR8_T test(u8"abc"); #endif diff --git a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/end.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/end.pass.cpp --- a/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/end.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/end.pass.cpp @@ -36,7 +36,9 @@ constexpr bool test() { test("abc"); +#ifndef TEST_HAS_NO_WIDE_CHARACTERS test(L"abc"); +#endif #ifndef TEST_HAS_NO_CHAR8_T test(u8"abc"); #endif