//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // constexpr basic_string_view(const _CharT* _s, size_type _len) // : __data (_s), __size(_len) {} #include #include #include #include "test_macros.h" template void test ( const CharT *s, size_t sz ) { { typedef std::basic_string_view SV; LIBCPP_ASSERT_NOEXCEPT(SV(s, sz)); SV sv1 ( s, sz ); assert ( sv1.size() == sz ); assert ( sv1.data() == s ); } } int main(int, char**) { test ( "QBCDE", 5 ); test ( "QBCDE", 2 ); test ( "", 0 ); #if TEST_STD_VER > 11 { constexpr const char *s = "QBCDE"; constexpr std::basic_string_view sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif test ( L"QBCDE", 5 ); test ( L"QBCDE", 2 ); test ( L"", 0 ); #if TEST_STD_VER > 11 { constexpr const wchar_t *s = L"QBCDE"; constexpr std::basic_string_view sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif #if TEST_STD_VER >= 11 test ( u"QBCDE", 5 ); test ( u"QBCDE", 2 ); test ( u"", 0 ); #if TEST_STD_VER > 11 { constexpr const char16_t *s = u"QBCDE"; constexpr std::basic_string_view sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif test ( U"QBCDE", 5 ); test ( U"QBCDE", 2 ); test ( U"", 0 ); #if TEST_STD_VER > 11 { constexpr const char32_t *s = U"QBCDE"; constexpr std::basic_string_view sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif #endif return 0; }