Lines Matching refs:basic_string

84 class basic_string
104 basic_string()
106 …explicit basic_string(const allocator_type& a); // con…
107basic_string(const basic_string& str); // con…
108 basic_string(basic_string&& str)
110 basic_string(const basic_string& str, size_type pos,
112 basic_string(const basic_string& str, size_type pos, size_type n,
114 constexpr basic_string(
115basic_string&& str, size_type pos, const Allocator& a = Allocator()); // since C…
116 constexpr basic_string(
117basic_string&& str, size_type pos, size_type n, const Allocator& a = Allocator()); // since C…
119basic_string(const T& t, size_type pos, size_type n, const Allocator& a = Allocator()); // C++17, …
121 …explicit basic_string(const T& t, const Allocator& a = Allocator()); // C++17, …
122basic_string(const value_type* s, const allocator_type& a = allocator_type()); // con…
123basic_string(const value_type* s, size_type n, const allocator_type& a = allocator_type()); // con…
124 basic_string(nullptr_t) = delete; // C++23
125basic_string(size_type n, value_type c, const allocator_type& a = allocator_type()); // con…
127 basic_string(InputIterator begin, InputIterator end,
130 …constexpr basic_string(from_range_t, R&& rg, const Allocator& a = Allocator()); // since…
131basic_string(initializer_list<value_type>, const Allocator& = Allocator()); // con…
132basic_string(const basic_string&, const Allocator&); // con…
133basic_string(basic_string&&, const Allocator&); // con…
135 …~basic_string(); // con…
139basic_string& operator=(const basic_string& str); // con…
141basic_string& operator=(const T& t); // C++17, …
142 basic_string& operator=(basic_string&& str)
146basic_string& operator=(const value_type* s); // con…
147 basic_string& operator=(nullptr_t) = delete; // C++23
148basic_string& operator=(value_type c); // con…
149basic_string& operator=(initializer_list<value_type>); // con…
189basic_string& operator+=(const basic_string& str); // con…
191basic_string& operator+=(const T& t); // C++17, …
192basic_string& operator+=(const value_type* s); // con…
193basic_string& operator+=(value_type c); // con…
194basic_string& operator+=(initializer_list<value_type>); // con…
196basic_string& append(const basic_string& str); // con…
198basic_string& append(const T& t); // C++17, …
199basic_string& append(const basic_string& str, size_type pos, size_type n=npos); // C++…
201basic_string& append(const T& t, size_type pos, size_type n=npos); // C++17, …
202basic_string& append(const value_type* s, size_type n); // con…
203basic_string& append(const value_type* s); // con…
204basic_string& append(size_type n, value_type c); // con…
206basic_string& append(InputIterator first, InputIterator last); // constex…
208 … constexpr basic_string& append_range(R&& rg); // C++23
209basic_string& append(initializer_list<value_type>); // con…
218basic_string& assign(const basic_string& str); // con…
220basic_string& assign(const T& t); // C++17, …
221basic_string& assign(basic_string&& str); // con…
222basic_string& assign(const basic_string& str, size_type pos, size_type n=npos); // C++…
224basic_string& assign(const T& t, size_type pos, size_type n=npos); // C++17, …
225basic_string& assign(const value_type* s, size_type n); // con…
226basic_string& assign(const value_type* s); // con…
227basic_string& assign(size_type n, value_type c); // con…
229basic_string& assign(InputIterator first, InputIterator last); // constex…
231 … constexpr basic_string& assign_range(R&& rg); // C++23
232basic_string& assign(initializer_list<value_type>); // con…
234basic_string& insert(size_type pos1, const basic_string& str); // con…
236basic_string& insert(size_type pos1, const T& t); // constex…
237 basic_string& insert(size_type pos1, const basic_string& str,
240basic_string& insert(size_type pos1, const T& t, size_type pos2, size_type n); // C++17, …
241basic_string& insert(size_type pos, const value_type* s, size_type n=npos); // C++…
242basic_string& insert(size_type pos, const value_type* s); // con…
243basic_string& insert(size_type pos, size_type n, value_type c); // con…
252basic_string& erase(size_type pos = 0, size_type n = npos); // con…
256basic_string& replace(size_type pos1, size_type n1, const basic_string& str); // con…
258basic_string& replace(size_type pos1, size_type n1, const T& t); // C++…
259 basic_string& replace(size_type pos1, size_type n1, const basic_string& str,
262 basic_string& replace(size_type pos1, size_type n1, const T& t,
264basic_string& replace(size_type pos, size_type n1, const value_type* s, size_type n2); // con…
265basic_string& replace(size_type pos, size_type n1, const value_type* s); // con…
266basic_string& replace(size_type pos, size_type n1, size_type n2, value_type c); // con…
267basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str); // con…
269basic_string& replace(const_iterator i1, const_iterator i2, const T& t); // C++17, …
270basic_string& replace(const_iterator i1, const_iterator i2, const value_type* s, size_type n); // …
271basic_string& replace(const_iterator i1, const_iterator i2, const value_type* s); // con…
272basic_string& replace(const_iterator i1, const_iterator i2, size_type n, value_type c); // con…
274basic_string& replace(const_iterator i1, const_iterator i2, InputIterator j1, InputIterator j2); /…
276 … constexpr basic_string& replace_with_range(const_iterator i1, const_iterator i2, R&& rg); // C++23
277basic_string& replace(const_iterator i1, const_iterator i2, initializer_list<value_type>); // con…
280basic_string substr(size_type pos = 0, size_type n = npos) const; // con…
281basic_string substr(size_type pos = 0, size_type n = npos) const&; // sin…
282 …constexpr basic_string substr(size_type pos = 0, size_type n = npos) &&; // sin…
283 void swap(basic_string& str)
293 …size_type find(const basic_string& str, size_type pos = 0) const noexcept; // con…
300 …size_type rfind(const basic_string& str, size_type pos = npos) const noexcept; // con…
307 …size_type find_first_of(const basic_string& str, size_type pos = 0) const noexcept; // con…
314 …size_type find_last_of(const basic_string& str, size_type pos = npos) const noexcept; // con…
321 …size_type find_first_not_of(const basic_string& str, size_type pos = 0) const noexcept; // con…
328 …size_type find_last_not_of(const basic_string& str, size_type pos = npos) const noexcept; // con…
335 …int compare(const basic_string& str) const noexcept; // con…
338 …int compare(size_type pos1, size_type n1, const basic_string& str) const; // con…
341 int compare(size_type pos1, size_type n1, const basic_string& str,
364 basic_string(InputIterator, InputIterator, Allocator = Allocator())
365 -> basic_string<typename iterator_traits<InputIterator>::value_type,
371 basic_string(from_range_t, R&&, Allocator = Allocator())
372 -> basic_string<ranges::range_value_t<R>, char_traits<ranges::range_value_t<R>>,
378 explicit basic_string(basic_string_view<charT, traits>, const Allocator& = Allocator())
379 -> basic_string<charT, traits, Allocator>; // C++17
384 basic_string(basic_string_view<charT, traits>,
387 -> basic_string<charT, traits, Allocator>; // C++17
390 basic_string<charT, traits, Allocator>
391 operator+(const basic_string<charT, traits, Allocator>& lhs,
392 …const basic_string<charT, traits, Allocator>& rhs); // constexpr…
395 basic_string<charT, traits, Allocator>
396 operator+(const charT* lhs , const basic_string<charT,traits,Allocator>&rhs); // …
399 basic_string<charT, traits, Allocator>
400 operator+(charT lhs, const basic_string<charT,traits,Allocator>& rhs); // …
403 basic_string<charT, traits, Allocator>
404 operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); // …
407 basic_string<charT, traits, Allocator>
408 operator+(const basic_string<charT, traits, Allocator>& lhs, charT rhs); // …
411 constexpr basic_string<charT, traits, Allocator>
412 operator+(const basic_string<charT, traits, Allocator>& lhs,
415 constexpr basic_string<charT, traits, Allocator>
416 operator+(basic_string<charT, traits, Allocator>&& lhs,
419 constexpr basic_string<charT, traits, Allocator>
421 … const basic_string<charT, traits, Allocator>& rhs); // Since C++26
423 constexpr basic_string<charT, traits, Allocator>
425basic_string<charT, traits, Allocator>&& rhs); // Since C++26
429 bool operator==(const basic_string<charT, traits, Allocator>& lhs,
430 …const basic_string<charT, traits, Allocator>& rhs) noexcept; // constexpr since…
433 bool operator==(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // …
436 bool operator==(const basic_string<charT,traits,Allocator>& lhs, const charT* rhs) noexcept; // …
439 bool operator!=(const basic_string<charT,traits,Allocator>& lhs,
440 …const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
443 bool operator!=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // …
446 bool operator!=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // …
449 bool operator< (const basic_string<charT, traits, Allocator>& lhs,
450 …const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
453 bool operator< (const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // …
456 bool operator< (const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // …
459 bool operator> (const basic_string<charT, traits, Allocator>& lhs,
460 …const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
463 bool operator> (const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // …
466 bool operator> (const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // …
469 bool operator<=(const basic_string<charT, traits, Allocator>& lhs,
470 …const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
473 bool operator<=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // …
476 bool operator<=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // …
479 bool operator>=(const basic_string<charT, traits, Allocator>& lhs,
480 …const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
483 bool operator>=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // …
486 bool operator>=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // …
489 constexpr see below operator<=>(const basic_string<charT, traits, Allocator>& lhs,
490 const basic_string<charT, traits, Allocator>& rhs) noexcept;
493 constexpr see below operator<=>(const basic_string<charT, traits, Allocator>& lhs,
497 void swap(basic_string<charT, traits, Allocator>& lhs,
498 basic_string<charT, traits, Allocator>& rhs)
503 operator>>(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str);
507 operator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str);
511 getline(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str,
516 getline(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str);
519 typename basic_string<charT, traits, Allocator>::size_type
520 erase(basic_string<charT, traits, Allocator>& c, const U& value); // C++20
522 typename basic_string<charT, traits, Allocator>::size_type
523 erase_if(basic_string<charT, traits, Allocator>& c, Predicate pred); // C++20
525 typedef basic_string<char> string;
526 typedef basic_string<wchar_t> wstring;
527 typedef basic_string<char8_t> u8string; // C++20
528 typedef basic_string<char16_t> u16string;
529 typedef basic_string<char32_t> u32string;
577 basic_string<char> operator""s( const char *str, size_t len ); // C++14, constexp…
578 basic_string<wchar_t> operator""s( const wchar_t *str, size_t len ); // C++14, constexp…
579 constexpr basic_string<char8_t> operator""s( const char8_t *str, size_t len ); // C++20
580 basic_string<char16_t> operator""s( const char16_t *str, size_t len ); // C++14, constexp…
581 basic_string<char32_t> operator""s( const char32_t *str, size_t len ); // C++14, constexp…
672 // basic_string
675 basic_string<_CharT, _Traits, _Allocator> _LIBCPP_HIDE_FROM_ABI
676 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const basic_string<_CharT, _Traits,…
679 _LIBCPP_HIDDEN basic_string<_CharT, _Traits, _Allocator>
680 operator+(const _CharT* __x, const basic_string<_CharT, _Traits, _Allocator>& __y);
683 _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>
684 operator+(_CharT __x, const basic_string<_CharT, _Traits, _Allocator>& __y);
687 inline _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>
688 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const _CharT* __y);
691 _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>
692 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
715 class basic_string {
720 typedef basic_string __self;
733 // A basic_string contains the following members which may be trivially relocatable:
743 // When compiling with AddressSanitizer (ASan), basic_string cannot be trivially
753 basic_string,
779 …static_assert(!is_array<value_type>::value, "Character type of basic_string must not be an array");
780 …static_assert(is_standard_layout<value_type>::value, "Character type of basic_string must be stand…
781 static_assert(is_trivial<value_type>::value, "Character type of basic_string must be trivial");
887 …_LIBCPP_HIDE_FROM_ABI explicit basic_string(__uninitialized_size_tag, size_type __size, const allo…
906 …_LIBCPP_HIDE_FROM_ABI basic_string(__init_with_sentinel_tag, _Iter __first, _Sent __last, const al…
943 …_LIBCPP_HIDE_FROM_ABI basic_string() : __r_(__value_init_tag(), __default_init_tag()) { __annotate…
945 …_LIBCPP_HIDE_FROM_ABI explicit basic_string(const allocator_type& __a) : __r_(__value_init_tag(), …
949 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string(const basic_string& __str)
959basic_string(const basic_string& __str, const allocator_type& __a) : __r_(__default_init_tag(), __…
968 …_LIBCPP_HIDE_FROM_ABI basic_string(const _CharT* __s) : __r_(__default_init_tag(), __default_init_…
969 _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "basic_string(const char*) detected nullptr");
974 …_LIBCPP_HIDE_FROM_ABI basic_string(const _CharT* __s, const _Allocator& __a) : __r_(__default_init…
975 … _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "basic_string(const char*, allocator) detected nullptr");
979 _LIBCPP_HIDE_FROM_ABI basic_string(const _CharT* __s, size_type __n)
981 …_LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr…
985 _LIBCPP_HIDE_FROM_ABI basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)
987 …_LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "basic_string(const char*, n, allocator) detec…
991 …_LIBCPP_HIDE_FROM_ABI basic_string(size_type __n, _CharT __c) : __r_(__default_init_tag(), __defau…
996 _LIBCPP_HIDE_FROM_ABI basic_string(size_type __n, _CharT __c, const _Allocator& __a)
1001basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Allocator& __a = _A…
1009 …_LIBCPP_HIDE_FROM_ABI basic_string(const basic_string& __str, size_type __pos, const _Allocator& _…
1019 !__is_same_uncvref<_Tp, basic_string>::value,
1022basic_string(const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a = allocator…
1031 !__is_same_uncvref<_Tp, basic_string>::value,
1033 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS explicit basic_string(const _Tp& __t)
1041 !__is_same_uncvref<_Tp, basic_string>::value,
1043 …_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS explicit basic_string(const _Tp& __t, const all…
1050 _LIBCPP_HIDE_FROM_ABI basic_string(_InputIterator __first, _InputIterator __last)
1056 …_LIBCPP_HIDE_FROM_ABI basic_string(_InputIterator __first, _InputIterator __last, const allocator_…
1061 inline ~basic_string() {
1069 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string& operator=(const basic_string& __str);
1073 !__is_same_uncvref<_Tp, basic_string>::value,
1075 basic_string& operator=(const _Tp& __t) {
1080 _LIBCPP_HIDE_FROM_ABI basic_string& operator=(const value_type* __s) { return assign(__s); }
1081 basic_string& operator=(value_type __c);
1149 …_LIBCPP_HIDE_FROM_ABI basic_string& operator+=(const basic_string& __str) { return append(__str); }
1153 !__is_same_uncvref<_Tp, basic_string >::value,
1155 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string& operator+=(const _Tp& __t) {
1160 _LIBCPP_HIDE_FROM_ABI basic_string& operator+=(const value_type* __s) { return append(__s); }
1162 _LIBCPP_HIDE_FROM_ABI basic_string& operator+=(value_type __c) {
1167 …_LIBCPP_HIDE_FROM_ABI basic_string& append(const basic_string& __str) { return append(__str.data()…
1171 !__is_same_uncvref<_Tp, basic_string>::value,
1173 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string& append(const _Tp& __t) {
1178 basic_string& append(const basic_string& __str, size_type __pos, size_type __n = npos);
1182 !__is_same_uncvref<_Tp, basic_string>::value,
1184 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1187 basic_string& append(const value_type* __s, size_type __n);
1188 basic_string& append(const value_type* __s);
1189 basic_string& append(size_type __n, value_type __c);
1194 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS _LIBCPP_HIDE_FROM_ABI basic_string&
1196 const basic_string __temp(__first, __last, __alloc());
1202 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS _LIBCPP_HIDE_FROM_ABI basic_string&
1229 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string& assign(const _Tp& __t) {
1234 _LIBCPP_HIDE_FROM_ABI basic_string& assign(const basic_string& __str) { return *this = __str; }
1236 basic_string& assign(const basic_string& __str, size_type __pos, size_type __n = npos);
1240 !__is_same_uncvref<_Tp, basic_string>::value,
1242 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1245 basic_string& assign(const value_type* __s, size_type __n);
1246 basic_string& assign(const value_type* __s);
1247 basic_string& assign(size_type __n, value_type __c);
1249 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1253 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1256 _LIBCPP_HIDE_FROM_ABI basic_string& insert(size_type __pos1, const basic_string& __str) {
1261 …_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string& insert(size_type __pos1, const _T…
1268 !__is_same_uncvref<_Tp, basic_string>::value,
1270 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1273basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n …
1274 basic_string& insert(size_type __pos, const value_type* __s, size_type __n);
1275 basic_string& insert(size_type __pos, const value_type* __s);
1276 basic_string& insert(size_type __pos, size_type __n, value_type __c);
1293 basic_string& erase(size_type __pos = 0, size_type __n = npos);
1297 …_LIBCPP_HIDE_FROM_ABI basic_string& replace(size_type __pos1, size_type __n1, const basic_string& …
1302 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1308 basic_string&
1309 …replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type _…
1313 !__is_same_uncvref<_Tp, basic_string>::value,
1315 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1318 basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
1319 basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
1320 basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
1322 …_LIBCPP_HIDE_FROM_ABI basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_…
1328 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1334 _LIBCPP_HIDE_FROM_ABI basic_string&
1339 …_LIBCPP_HIDE_FROM_ABI basic_string& replace(const_iterator __i1, const_iterator __i2, const value_…
1343 …_LIBCPP_HIDE_FROM_ABI basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __…
1348 _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS basic_string&
1353 _LIBCPP_HIDE_FROM_ABI basic_string substr(size_type __pos = 0, size_type __n = npos) const {
1354 return basic_string(*this, __pos, __n);
1357 _LIBCPP_HIDE_FROM_ABI void swap(basic_string& __str);
1364 …_LIBCPP_HIDE_FROM_ABI size_type find(const basic_string& __str, size_type __pos = 0) const _NOEXCE…
1374 …_LIBCPP_HIDE_FROM_ABI size_type rfind(const basic_string& __str, size_type __pos = npos) const _NO…
1384 …_LIBCPP_HIDE_FROM_ABI size_type find_first_of(const basic_string& __str, size_type __pos = 0) cons…
1394 …_LIBCPP_HIDE_FROM_ABI size_type find_last_of(const basic_string& __str, size_type __pos = npos) co…
1404 …_LIBCPP_HIDE_FROM_ABI size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) …
1414 …_LIBCPP_HIDE_FROM_ABI size_type find_last_not_of(const basic_string& __str, size_type __pos = npos…
1424 _LIBCPP_HIDE_FROM_ABI int compare(const basic_string& __str) const _NOEXCEPT;
1433 …_LIBCPP_HIDE_FROM_ABI int compare(size_type __pos1, size_type __n1, const basic_string& __str) con…
1435 …size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2 = np…
1439 !__is_same_uncvref<_Tp, basic_string>::value,
1455 operator==(const basic_string<char, char_traits<char>, _Alloc>& __lhs,
1456 const basic_string<char, char_traits<char>, _Alloc>& __rhs) _NOEXCEPT;
1680 // For example, operator=(basic_string) performs a 'self' check.
1682 _LIBCPP_NOINLINE basic_string& __assign_no_alias(const value_type* __s, size_type __n);
1692 _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const basic_string& __str) {
1697 _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const basic_string& __str, true_type) {
1720 _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const basic_string&, false_type) _NOEXCEPT {}
1722 _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(basic_string& __str) {
1727 …_LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(basic_string& __c, true_type) { __alloc() = std::mo…
1729 _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(basic_string&, false_type) _NOEXCEPT {}
1731 _LIBCPP_NOINLINE basic_string& __assign_external(const value_type* __s);
1732 _LIBCPP_NOINLINE basic_string& __assign_external(const value_type* __s, size_type __n);
1735 inline basic_string& __assign_short(const value_type* __s, size_type __n) {
1748 _LIBCPP_HIDE_FROM_ABI basic_string& __null_terminate_at(value_type* __p, size_type __newsz) {
1765 std::__throw_length_error("basic_string");
1769 std::__throw_out_of_range("basic_string");
1772 friend basic_string operator+ <>(const basic_string&, const basic_string&);
1773 friend basic_string operator+ <>(const value_type*, const basic_string&);
1774 friend basic_string operator+ <>(value_type, const basic_string&);
1775 friend basic_string operator+ <>(const basic_string&, const value_type*);
1776 friend basic_string operator+ <>(const basic_string&, value_type);
1796 void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz, size_…
1819 void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz) {
1843 basic_string<_CharT, _Traits, _Allocator>::__init_copy_ctor_external(const value_type* __s, size_ty…
1866 void basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c) {
1891 void basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _InputIterator __las…
1898 basic_string<_CharT, _Traits, _Allocator>::__init_with_sentinel(_InputIterator __first, _Sentinel _…
1919 void basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _ForwardIterator _…
1927 basic_string<_CharT, _Traits, _Allocator>::__init_with_size(_InputIterator __first, _Sentinel __las…
1964 void basic_string<_CharT, _Traits, _Allocator>::__grow_by_and_replace(
2008 …_LIBCPP_DEPRECATED_("use __grow_by_without_replace") basic_string<_CharT, _Traits, _Allocator>::__…
2038 void _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>::__grow_by_without_replace(
2056 _LIBCPP_NOINLINE basic_string<_CharT, _Traits, _Allocator>&
2057 basic_string<_CharT, _Traits, _Allocator>::__assign_no_alias(const value_type* __s, size_type __n) {
2077 _LIBCPP_NOINLINE basic_string<_CharT, _Traits, _Allocator>&
2078 basic_string<_CharT, _Traits, _Allocator>::__assign_external(const value_type* __s, size_type __n) {
2095 basic_string<_CharT, _Traits, _Allocator>&
2096 basic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s, size_type __n) {
2102 basic_string<_CharT, _Traits, _Allocator>&
2103 basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c) {
2118 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::operator=(val…
2138 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string<_CharT, _Traits, _Allocator>&
2139 basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str) {
2162 basic_string<_CharT, _Traits, _Allocator>&
2163 basic_string<_CharT, _Traits, _Allocator>::assign(_InputIterator __first, _InputIterator __last) {
2171 basic_string<_CharT, _Traits, _Allocator>::__assign_with_sentinel(_InputIterator __first, _Sentinel…
2172 …const basic_string __temp(__init_with_sentinel_tag(), std::move(__first), std::move(__last), __all…
2178 basic_string<_CharT, _Traits, _Allocator>&
2179 basic_string<_CharT, _Traits, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last…
2193 basic_string<_CharT, _Traits, _Allocator>::__assign_trivial(_Iterator __first, _Sentinel __last, si…
2221 basic_string<_CharT, _Traits, _Allocator>&
2222 basic_string<_CharT, _Traits, _Allocator>::assign(const basic_string& __str, size_type __pos, size_…
2232 … !__is_same_uncvref<_Tp, basic_string<_CharT, _Traits, _Allocator> >::value,
2234 basic_string<_CharT, _Traits, _Allocator>&
2235 basic_string<_CharT, _Traits, _Allocator>::assign(const _Tp& __t, size_type __pos, size_type __n) {
2244 _LIBCPP_NOINLINE basic_string<_CharT, _Traits, _Allocator>&
2245 basic_string<_CharT, _Traits, _Allocator>::__assign_external(const value_type* __s) {
2250 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::assign(const …
2260 basic_string<_CharT, _Traits, _Allocator>&
2261 basic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s, size_type __n) {
2280 basic_string<_CharT, _Traits, _Allocator>&
2281 basic_string<_CharT, _Traits, _Allocator>::append(size_type __n, value_type __c) {
2298 inline void basic_string<_CharT, _Traits, _Allocator>::__append_default_init(size_type __n) {
2313 void basic_string<_CharT, _Traits, _Allocator>::push_back(value_type __c) {
2344 basic_string<_CharT, _Traits, _Allocator>&
2345 basic_string<_CharT, _Traits, _Allocator>::append(_ForwardIterator __first, _ForwardIterator __last…
2358 const basic_string __temp(__first, __last, __alloc());
2366 basic_string<_CharT, _Traits, _Allocator>&
2367 basic_string<_CharT, _Traits, _Allocator>::append(const basic_string& __str, size_type __pos, size_…
2377 … !__is_same_uncvref<_Tp, basic_string<_CharT, _Traits, _Allocator> >::value,
2379 basic_string<_CharT, _Traits, _Allocator>&
2380 basic_string<_CharT, _Traits, _Allocator>::append(const _Tp& __t, size_type __pos, size_type __n) {
2389 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::append(const …
2397 basic_string<_CharT, _Traits, _Allocator>&
2398 basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s, size_type…
2425 basic_string<_CharT, _Traits, _Allocator>&
2426 basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, size_type __n, value_type __c) {
2453 typename basic_string<_CharT, _Traits, _Allocator>::iterator
2454 basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _InputIterator __first, _In…
2455 const basic_string __temp(__first, __last, __alloc());
2461 typename basic_string<_CharT, _Traits, _Allocator>::iterator basic_string<_CharT, _Traits, _Allocat…
2469 typename basic_string<_CharT, _Traits, _Allocator>::iterator
2470 basic_string<_CharT, _Traits, _Allocator>::__insert_with_size(
2479 const basic_string __temp(__init_with_sentinel_tag(), __first, __last, __alloc());
2485 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(
2486 size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n) {
2496 … !__is_same_uncvref<_Tp, basic_string<_CharT, _Traits, _Allocator> >::value,
2498 basic_string<_CharT, _Traits, _Allocator>&
2499 basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const _Tp& __t, size_type __pos…
2508 basic_string<_CharT, _Traits, _Allocator>&
2509 basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s) {
2515 typename basic_string<_CharT, _Traits, _Allocator>::iterator
2516 basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, value_type __c) {
2540 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(
2584 basic_string<_CharT, _Traits, _Allocator>&
2585 basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, size_type __n2,…
2611 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(
2613 const basic_string __temp(__j1, __j2, __alloc());
2618 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(
2619 size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) {
2629 … !__is_same_uncvref<_Tp, basic_string<_CharT, _Traits, _Allocator> >::value,
2631 basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(
2641 basic_string<_CharT, _Traits, _Allocator>&
2642 basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, const value_typ…
2653 basic_string<_CharT, _Traits, _Allocator>::__erase_external_with_move(size_type __pos, size_type __…
2666 basic_string<_CharT, _Traits, _Allocator>&
2667 basic_string<_CharT, _Traits, _Allocator>::erase(size_type __pos, size_type __n) {
2679 inline typename basic_string<_CharT, _Traits, _Allocator>::iterator
2680 basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __pos) {
2690 inline typename basic_string<_CharT, _Traits, _Allocator>::iterator
2691 basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __first, const_iterator __last) {
2700 inline void basic_string<_CharT, _Traits, _Allocator>::pop_back() {
2706 inline void basic_string<_CharT, _Traits, _Allocator>::clear() _NOEXCEPT {
2719 void basic_string<_CharT, _Traits, _Allocator>::resize(size_type __n, value_type __c) {
2728 inline void basic_string<_CharT, _Traits, _Allocator>::__resize_default_init(size_type __n) {
2737 void basic_string<_CharT, _Traits, _Allocator>::reserve(size_type __requested_capacity) {
2756 inline void basic_string<_CharT, _Traits, _Allocator>::shrink_to_fit() _NOEXCEPT {
2765 inline void basic_string<_CharT, _Traits, _Allocator>::__shrink_or_extend(size_type __target_capaci…
2827 typename basic_string<_CharT, _Traits, _Allocator>::const_reference
2828 basic_string<_CharT, _Traits, _Allocator>::at(size_type __n) const {
2835 typename basic_string<_CharT, _Traits, _Allocator>::reference
2836 basic_string<_CharT, _Traits, _Allocator>::at(size_type __n) {
2843 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2844 basic_string<_CharT, _Traits, _Allocator>::copy(value_type* __s, size_type __n, size_type __pos) co…
2854 inline void basic_string<_CharT, _Traits, _Allocator>::swap(basic_string& __str) {
2882 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2883 basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s, size_type __pos, size_type _…
2889 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2890 basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str, size_type __pos) const _…
2896 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2897 basic_string<_CharT, _Traits, _Allocator>::find(const _Tp& __t, size_type __pos) const _NOEXCEPT {
2903 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2904 basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s, size_type __pos) const _NOEX…
2911 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2912 basic_string<_CharT, _Traits, _Allocator>::find(value_type __c, size_type __pos) const _NOEXCEPT {
2919 typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Alloca…
2926 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2927 basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str, size_type __pos) const …
2933 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2934 basic_string<_CharT, _Traits, _Allocator>::rfind(const _Tp& __t, size_type __pos) const _NOEXCEPT {
2940 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2941 basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s, size_type __pos) const _NOE…
2948 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2949 basic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c, size_type __pos) const _NOEXCEPT {
2956 typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Alloca…
2963 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2964 basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str, size_type __pos…
2971 typename basic_string<_CharT, _Traits, _Allocator>::size_type
2972 basic_string<_CharT, _Traits, _Allocator>::find_first_of(const _Tp& __t, size_type __pos) const _NO…
2979 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2980 basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s, size_type __pos) co…
2987 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2988 basic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c, size_type __pos) const _NO…
2995 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
2996 basic_string<_CharT, _Traits, _Allocator>::find_last_of(
3003 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3004 basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str, size_type __pos)…
3011 typename basic_string<_CharT, _Traits, _Allocator>::size_type
3012 basic_string<_CharT, _Traits, _Allocator>::find_last_of(const _Tp& __t, size_type __pos) const _NOE…
3019 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3020 basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s, size_type __pos) con…
3027 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3028 basic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c, size_type __pos) const _NOE…
3035 typename basic_string<_CharT, _Traits, _Allocator>::size_type
3036 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(
3043 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3044 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(
3045 const basic_string& __str, size_type __pos) const _NOEXCEPT {
3052 typename basic_string<_CharT, _Traits, _Allocator>::size_type
3053 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const _Tp& __t, size_type __pos) const…
3060 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3061 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s, size_type __pos…
3068 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3069 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c, size_type __pos) const…
3076 typename basic_string<_CharT, _Traits, _Allocator>::size_type
3077 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(
3084 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3085 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(
3086 const basic_string& __str, size_type __pos) const _NOEXCEPT {
3093 typename basic_string<_CharT, _Traits, _Allocator>::size_type
3094 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const _Tp& __t, size_type __pos) const …
3101 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3102 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s, size_type __pos)…
3109 inline typename basic_string<_CharT, _Traits, _Allocator>::size_type
3110 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c, size_type __pos) const …
3118 int basic_string<_CharT, _Traits, _Allocator>::compare(const _Tp& __t) const _NOEXCEPT {
3133 inline int basic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const _NOE…
3138 inline int basic_string<_CharT, _Traits, _Allocator>::compare(
3157 int basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const _Tp&…
3164 basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const basic_st…
3171 … !__is_same_uncvref<_Tp, basic_string<_CharT, _Traits, _Allocator> >::value,
3173 int basic_string<_CharT, _Traits, _Allocator>::compare(
3180 int basic_string<_CharT, _Traits, _Allocator>::compare(
3181 …size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) con…
3186 int basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const _NOEXCEPT {
3192 int basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const valu…
3200 inline bool basic_string<_CharT, _Traits, _Allocator>::__invariants() const {
3215 inline void basic_string<_CharT, _Traits, _Allocator>::__clear_and_shrink() _NOEXCEPT {
3227 inline _LIBCPP_HIDE_FROM_ABI bool operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3228 … const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3234 inline _LIBCPP_HIDE_FROM_ABI bool operator==(const basic_string<char, char_traits<char>, _Allocator…
3235 … const basic_string<char, char_traits<char>, _Allocator>& __rhs) _NOEXCEPT {
3244 operator==(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3245 typedef basic_string<_CharT, _Traits, _Allocator> _String;
3246 _LIBCPP_ASSERT_NON_NULL(__lhs != nullptr, "operator==(char*, basic_string): received nullptr");
3255 operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3256 typedef basic_string<_CharT, _Traits, _Allocator> _String;
3257 _LIBCPP_ASSERT_NON_NULL(__rhs != nullptr, "operator==(basic_string, char*): received nullptr");
3265 inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3266 … const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3272 operator!=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3278 operator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3285 inline _LIBCPP_HIDE_FROM_ABI bool operator<(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3286 … const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3292 operator<(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3298 operator<(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3305 inline _LIBCPP_HIDE_FROM_ABI bool operator>(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3306 … const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3312 operator>(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3318 operator>(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3325 inline _LIBCPP_HIDE_FROM_ABI bool operator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3326 … const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3332 operator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3338 operator<=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3345 inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3346 … const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3352 operator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3358 operator>=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3365 _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>
3366 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3367 const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3368 using _String = basic_string<_CharT, _Traits, _Allocator>;
3382 _LIBCPP_HIDDEN basic_string<_CharT, _Traits, _Allocator>
3383 operator+(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3384 using _String = basic_string<_CharT, _Traits, _Allocator>;
3398 _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>
3399 operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3400 using _String = basic_string<_CharT, _Traits, _Allocator>;
3413 inline basic_string<_CharT, _Traits, _Allocator>
3414 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) {
3415 using _String = basic_string<_CharT, _Traits, _Allocator>;
3429 _LIBCPP_HIDE_FROM_ABI basic_string<_CharT, _Traits, _Allocator>
3430 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs) {
3431 using _String = basic_string<_CharT, _Traits, _Allocator>;
3447 swap(basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>& _…
3494 _LIBCPP_TEMPLATE_DATA_VIS const typename basic_string<_CharT, _Traits, _Allocator>::size_type
3495 basic_string<_CharT, _Traits, _Allocator>::npos;
3498 struct __string_hash : public __unary_function<basic_string<_CharT, char_traits<_CharT>, _Allocator…
3500 operator()(const basic_string<_CharT, char_traits<_CharT>, _Allocator>& __val) const _NOEXCEPT {
3506 struct hash<basic_string<char, char_traits<char>, _Allocator> > : __string_hash<char, _Allocator> {…
3510 struct hash<basic_string<char8_t, char_traits<char8_t>, _Allocator> > : __string_hash<char8_t, _All…
3514 struct hash<basic_string<char16_t, char_traits<char16_t>, _Allocator> > : __string_hash<char16_t, _…
3517 struct hash<basic_string<char32_t, char_traits<char32_t>, _Allocator> > : __string_hash<char32_t, _…
3521 struct hash<basic_string<wchar_t, char_traits<wchar_t>, _Allocator> > : __string_hash<wchar_t, _All…
3526 operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Allocator>& _…
3530 operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str);
3534 getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _Ch…
3538 getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str);
3542 getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _C…
3546 getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str);