From Jason Turner

[string.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8kwn4whp/{from.md → to.md} +6 -11
tmp/tmp8kwn4whp/{from.md → to.md} RENAMED
@@ -122,11 +122,11 @@ namespace std {
122
  erase(basic_string<charT, traits, Allocator>& c, const U& value);
123
  template<class charT, class traits, class Allocator, class Predicate>
124
  constexpr typename basic_string<charT, traits, Allocator>::size_type
125
  erase_if(basic_string<charT, traits, Allocator>& c, Predicate pred);
126
 
127
- // basic_string typedef names
128
  using string = basic_string<char>;
129
  using u8string = basic_string<char8_t>;
130
  using u16string = basic_string<char16_t>;
131
  using u32string = basic_string<char32_t>;
132
  using wstring = basic_string<wchar_t>;
@@ -179,20 +179,15 @@ namespace std {
179
  using wstring = basic_string<wchar_t>;
180
  }
181
 
182
  // [basic.string.hash], hash support
183
  template<class T> struct hash;
184
- template<> struct hash<string>;
185
- template<> struct hash<u8string>;
186
- template<> struct hash<u16string>;
187
- template<> struct hash<u32string>;
188
- template<> struct hash<wstring>;
189
- template<> struct hash<pmr::string>;
190
- template<> struct hash<pmr::u8string>;
191
- template<> struct hash<pmr::u16string>;
192
- template<> struct hash<pmr::u32string>;
193
- template<> struct hash<pmr::wstring>;
194
 
195
  inline namespace literals {
196
  inline namespace string_literals {
197
  // [basic.string.literals], suffix for basic_string literals
198
  constexpr string operator""s(const char* str, size_t len);
 
122
  erase(basic_string<charT, traits, Allocator>& c, const U& value);
123
  template<class charT, class traits, class Allocator, class Predicate>
124
  constexpr typename basic_string<charT, traits, Allocator>::size_type
125
  erase_if(basic_string<charT, traits, Allocator>& c, Predicate pred);
126
 
127
+ // basic_string typedef-names
128
  using string = basic_string<char>;
129
  using u8string = basic_string<char8_t>;
130
  using u16string = basic_string<char16_t>;
131
  using u32string = basic_string<char32_t>;
132
  using wstring = basic_string<wchar_t>;
 
179
  using wstring = basic_string<wchar_t>;
180
  }
181
 
182
  // [basic.string.hash], hash support
183
  template<class T> struct hash;
184
+ template<class A> struct hash<basic_string<char, char_traits<char>, A>>;
185
+ template<class A> struct hash<basic_string<char8_t, char_traits<char8_t>, A>>;
186
+ template<class A> struct hash<basic_string<char16_t, char_traits<char16_t>, A>>;
187
+ template<class A> struct hash<basic_string<char32_t, char_traits<char32_t>, A>>;
188
+ template<class A> struct hash<basic_string<wchar_t, char_traits<wchar_t>, A>>;
 
 
 
 
 
189
 
190
  inline namespace literals {
191
  inline namespace string_literals {
192
  // [basic.string.literals], suffix for basic_string literals
193
  constexpr string operator""s(const char* str, size_t len);