Lines Matching refs:basic_string_view
23 // 7.2, Class template basic_string_view
25 class basic_string_view;
28 inline constexpr bool ranges::enable_view<basic_string_view<charT, traits>> = true;
31 inline constexpr bool ranges::enable_borrowed_range<basic_string_view<charT, traits>> = true; // C++20
33 // 7.9, basic_string_view non-member comparison functions
35 constexpr bool operator==(basic_string_view<charT, traits> x,
36 basic_string_view<charT, traits> y) noexcept;
38 constexpr bool operator!=(basic_string_view<charT, traits> x,
39 basic_string_view<charT, traits> y) noexcept;
41 constexpr bool operator< (basic_string_view<charT, traits> x,
42 basic_string_view<charT, traits> y) noexcept;
44 constexpr bool operator> (basic_string_view<charT, traits> x,
45 basic_string_view<charT, traits> y) noexcept;
47 constexpr bool operator<=(basic_string_view<charT, traits> x,
48 basic_string_view<charT, traits> y) noexcept;
50 constexpr bool operator>=(basic_string_view<charT, traits> x,
51 basic_string_view<charT, traits> y) noexcept;
53 constexpr see below operator<=>(basic_string_view<charT, traits> x,
54 basic_string_view<charT, traits> y) noexcept;
62 basic_string_view<charT, traits> str);
64 // basic_string_view typedef names
65 typedef basic_string_view<char> string_view;
66 typedef basic_string_view<char8_t> u8string_view; // C++20
67 typedef basic_string_view<char16_t> u16string_view;
68 typedef basic_string_view<char32_t> u32string_view;
69 typedef basic_string_view<wchar_t> wstring_view;
72 class basic_string_view {
89 // 7.3, basic_string_view constructors and assignment operators
90 constexpr basic_string_view() noexcept;
91 constexpr basic_string_view(const basic_string_view&) noexcept = default;
92 basic_string_view& operator=(const basic_string_view&) noexcept = default;
94 constexpr basic_string_view(const charT* str);
95 basic_string_view(nullptr_t) = delete; // C++23
96 constexpr basic_string_view(const charT* str, size_type len);
98 constexpr basic_string_view(It begin, End end); // C++20
100 constexpr basic_string_view(Range&& r); // C++23
102 // 7.4, basic_string_view iterator support
112 // 7.5, basic_string_view capacity
118 // 7.6, basic_string_view element access
125 // 7.7, basic_string_view modifiers
128 constexpr void swap(basic_string_view& s) noexcept;
132 constexpr basic_string_view substr(size_type pos = 0, size_type n = npos) const;
133 constexpr int compare(basic_string_view s) const noexcept;
134 constexpr int compare(size_type pos1, size_type n1, basic_string_view s) const;
136 basic_string_view s, size_type pos2, size_type n2) const;
141 constexpr size_type find(basic_string_view s, size_type pos = 0) const noexcept;
145 constexpr size_type rfind(basic_string_view s, size_type pos = npos) const noexcept;
149 constexpr size_type find_first_of(basic_string_view s, size_type pos = 0) const noexcept;
153 constexpr size_type find_last_of(basic_string_view s, size_type pos = npos) const noexcept;
157 constexpr size_type find_first_not_of(basic_string_view s, size_type pos = 0) const noexcept;
161 constexpr size_type find_last_not_of(basic_string_view s, size_type pos = npos) const noexcept;
166 constexpr bool starts_with(basic_string_view s) const noexcept; // C++20
169 constexpr bool ends_with(basic_string_view s) const noexcept; // C++20
173 constexpr bool contains(basic_string_view s) const noexcept; // C++23
182 // basic_string_view deduction guides
184 basic_string_view(It, End) -> basic_string_view<iter_value_t<It>>; // C++20
186 basic_string_view(Range&&) -> basic_string_view<ranges::range_value_t<Range>>; // C++23
196 constexpr basic_string_view<char> operator""sv(const char *str, size_t len) noexcept;
197 constexpr basic_string_view<wchar_t> operator""sv(const wchar_t *str, size_t len) noexcept;
198 constexpr basic_string_view<char8_t> operator""sv(const char8_t *str, size_t len) noexcept; // C++20
199 constexpr basic_string_view<char16_t> operator""sv(const char16_t *str, size_t len) noexcept;
200 constexpr basic_string_view<char32_t> operator""sv(const char32_t *str, size_t len) noexcept;
280 class basic_string_view {
303 static_assert(!is_array<value_type>::value, "Character type of basic_string_view must not be an array");
304 static_assert(is_standard_layout<value_type>::value, "Character type of basic_string_view must be standard-layout");
305 static_assert(is_trivial<value_type>::value, "Character type of basic_string_view must be trivial");
310 _LIBCPP_CONSTEXPR _LIBCPP_HIDE_FROM_ABI basic_string_view() _NOEXCEPT : __data_(nullptr), __size_(0) {}
312 _LIBCPP_HIDE_FROM_ABI basic_string_view(const basic_string_view&) _NOEXCEPT = default;
314 _LIBCPP_HIDE_FROM_ABI basic_string_view& operator=(const basic_string_view&) _NOEXCEPT = default;
316 _LIBCPP_CONSTEXPR _LIBCPP_HIDE_FROM_ABI basic_string_view(const _CharT* __s, size_type __len) _NOEXCEPT
334 constexpr _LIBCPP_HIDE_FROM_ABI basic_string_view(_It __begin, _End __end)
343 requires(!is_same_v<remove_cvref_t<_Range>, basic_string_view> && ranges::contiguous_range<_Range> &&
346 (!requires(remove_cvref_t<_Range>& __d) { __d.operator std::basic_string_view<_CharT, _Traits>(); }))
347 constexpr explicit _LIBCPP_HIDE_FROM_ABI basic_string_view(_Range&& __r)
351 _LIBCPP_CONSTEXPR _LIBCPP_HIDE_FROM_ABI basic_string_view(const _CharT* __s)
355 basic_string_view(nullptr_t) = delete;
437 _LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI void swap(basic_string_view& __other) _NOEXCEPT {
456 _LIBCPP_CONSTEXPR _LIBCPP_HIDE_FROM_ABI basic_string_view substr(size_type __pos = 0, size_type __n = npos) const {
460 return __pos > size() ? (__throw_out_of_range("string_view::substr"), basic_string_view())
461 : basic_string_view(__assume_valid(), data() + __pos, std::min(__n, size() - __pos));
464 _LIBCPP_CONSTEXPR_SINCE_CXX14 int compare(basic_string_view __sv) const _NOEXCEPT {
473 compare(size_type __pos1, size_type __n1, basic_string_view __sv) const {
478 compare(size_type __pos1, size_type __n1, basic_string_view __sv, size_type __pos2, size_type __n2) const {
483 return compare(basic_string_view(__s));
488 return substr(__pos1, __n1).compare(basic_string_view(__s));
493 return substr(__pos1, __n1).compare(basic_string_view(__s, __n2));
498 find(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT {
522 rfind(basic_string_view __s, size_type __pos = npos) const _NOEXCEPT {
547 find_first_of(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT {
573 find_last_of(basic_string_view __s, size_type __pos = npos) const _NOEXCEPT {
599 find_first_not_of(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT {
626 find_last_not_of(basic_string_view __s, size_type __pos = npos) const _NOEXCEPT {
652 constexpr _LIBCPP_HIDE_FROM_ABI bool starts_with(basic_string_view __s) const noexcept {
661 return starts_with(basic_string_view(__s));
664 constexpr _LIBCPP_HIDE_FROM_ABI bool ends_with(basic_string_view __s) const noexcept {
673 return ends_with(basic_string_view(__s));
678 constexpr _LIBCPP_HIDE_FROM_ABI bool contains(basic_string_view __sv) const noexcept { return find(__sv) != npos; }
692 basic_string_view(__assume_valid, const _CharT* __s, size_type __len) _NOEXCEPT
702 _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(basic_string_view);
706 inline constexpr bool ranges::enable_view<basic_string_view<_CharT, _Traits>> = true;
709 inline constexpr bool ranges::enable_borrowed_range<basic_string_view<_CharT, _Traits> > = true;
716 basic_string_view(_It, _End) -> basic_string_view<iter_value_t<_It>>;
721 basic_string_view(_Range) -> basic_string_view<ranges::range_value_t<_Range>>;
730 operator==(basic_string_view<_CharT, _Traits> __lhs,
731 __type_identity_t<basic_string_view<_CharT, _Traits> > __rhs) _NOEXCEPT {
740 _LIBCPP_HIDE_FROM_ABI constexpr auto operator<=>(basic_string_view<_CharT, _Traits> __lhs,
741 type_identity_t<basic_string_view<_CharT, _Traits>> __rhs) noexcept {
758 operator==(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
766 operator==(__type_identity_t<basic_string_view<_CharT, _Traits> > __lhs,
767 basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
774 operator!=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
780 operator!=(basic_string_view<_CharT, _Traits> __lhs,
781 __type_identity_t<basic_string_view<_CharT, _Traits> > __rhs) _NOEXCEPT {
787 operator!=(__type_identity_t<basic_string_view<_CharT, _Traits> > __lhs,
788 basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
795 operator<(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
801 operator<(basic_string_view<_CharT, _Traits> __lhs,
802 __type_identity_t<basic_string_view<_CharT, _Traits> > __rhs) _NOEXCEPT {
808 operator<(__type_identity_t<basic_string_view<_CharT, _Traits> > __lhs,
809 basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
816 operator>(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
822 operator>(basic_string_view<_CharT, _Traits> __lhs,
823 __type_identity_t<basic_string_view<_CharT, _Traits> > __rhs) _NOEXCEPT {
829 operator>(__type_identity_t<basic_string_view<_CharT, _Traits> > __lhs,
830 basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
837 operator<=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
843 operator<=(basic_string_view<_CharT, _Traits> __lhs,
844 __type_identity_t<basic_string_view<_CharT, _Traits> > __rhs) _NOEXCEPT {
850 operator<=(__type_identity_t<basic_string_view<_CharT, _Traits> > __lhs,
851 basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
858 operator>=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
864 operator>=(basic_string_view<_CharT, _Traits> __lhs,
865 __type_identity_t<basic_string_view<_CharT, _Traits> > __rhs) _NOEXCEPT {
871 operator>=(__type_identity_t<basic_string_view<_CharT, _Traits> > __lhs,
872 basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT {
880 operator<<(basic_ostream<_CharT, _Traits>& __os, basic_string_view<_CharT, _Traits> __str);
884 struct __string_view_hash : public __unary_function<basic_string_view<_CharT, char_traits<_CharT> >, size_t> {
885 _LIBCPP_HIDE_FROM_ABI size_t operator()(const basic_string_view<_CharT, char_traits<_CharT> > __val) const _NOEXCEPT {
891 struct hash<basic_string_view<char, char_traits<char> > > : __string_view_hash<char> {};
895 struct hash<basic_string_view<char8_t, char_traits<char8_t> > > : __string_view_hash<char8_t> {};
899 struct hash<basic_string_view<char16_t, char_traits<char16_t> > > : __string_view_hash<char16_t> {};
902 struct hash<basic_string_view<char32_t, char_traits<char32_t> > > : __string_view_hash<char32_t> {};
906 struct hash<basic_string_view<wchar_t, char_traits<wchar_t> > > : __string_view_hash<wchar_t> {};
912 inline _LIBCPP_HIDE_FROM_ABI constexpr basic_string_view<char> operator""sv(const char* __str, size_t __len) noexcept {
913 return basic_string_view<char>(__str, __len);
917 inline _LIBCPP_HIDE_FROM_ABI constexpr basic_string_view<wchar_t>
919 return basic_string_view<wchar_t>(__str, __len);
924 inline _LIBCPP_HIDE_FROM_ABI constexpr basic_string_view<char8_t>
926 return basic_string_view<char8_t>(__str, __len);
930 inline _LIBCPP_HIDE_FROM_ABI constexpr basic_string_view<char16_t>
932 return basic_string_view<char16_t>(__str, __len);
935 inline _LIBCPP_HIDE_FROM_ABI constexpr basic_string_view<char32_t>
937 return basic_string_view<char32_t>(__str, __len);