From Jason Turner

[string.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpbd8ydykb/{from.md → to.md} +23 -7
tmp/tmpbd8ydykb/{from.md → to.md} RENAMED
@@ -4,16 +4,16 @@
4
  #include <compare> // see [compare.syn]
5
  #include <initializer_list> // see [initializer.list.syn]
6
 
7
  namespace std {
8
  // [char.traits], character traits
9
- template<class charT> struct char_traits;
10
- template<> struct char_traits<char>;
11
- template<> struct char_traits<char8_t>;
12
- template<> struct char_traits<char16_t>;
13
- template<> struct char_traits<char32_t>;
14
- template<> struct char_traits<wchar_t>;
15
 
16
  // [basic.string], basic_string
17
  template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT>>
18
  class basic_string;
19
 
@@ -63,10 +63,26 @@ namespace std {
63
  charT rhs);
64
  template<class charT, class traits, class Allocator>
65
  constexpr basic_string<charT, traits, Allocator>
66
  operator+(basic_string<charT, traits, Allocator>&& lhs,
67
  charT rhs);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
 
69
  template<class charT, class traits, class Allocator>
70
  constexpr bool
71
  operator==(const basic_string<charT, traits, Allocator>& lhs,
72
  const basic_string<charT, traits, Allocator>& rhs) noexcept;
@@ -115,11 +131,11 @@ namespace std {
115
  basic_istream<charT, traits>&
116
  getline(basic_istream<charT, traits>&& is,
117
  basic_string<charT, traits, Allocator>& str);
118
 
119
  // [string.erasure], erasure
120
- template<class charT, class traits, class Allocator, class U>
121
  constexpr typename basic_string<charT, traits, Allocator>::size_type
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);
 
4
  #include <compare> // see [compare.syn]
5
  #include <initializer_list> // see [initializer.list.syn]
6
 
7
  namespace std {
8
  // [char.traits], character traits
9
+ template<class charT> struct char_traits; // freestanding
10
+ template<> struct char_traits<char>; // freestanding
11
+ template<> struct char_traits<char8_t>; // freestanding
12
+ template<> struct char_traits<char16_t>; // freestanding
13
+ template<> struct char_traits<char32_t>; // freestanding
14
+ template<> struct char_traits<wchar_t>; // freestanding
15
 
16
  // [basic.string], basic_string
17
  template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT>>
18
  class basic_string;
19
 
 
63
  charT rhs);
64
  template<class charT, class traits, class Allocator>
65
  constexpr basic_string<charT, traits, Allocator>
66
  operator+(basic_string<charT, traits, Allocator>&& lhs,
67
  charT rhs);
68
+ template<class charT, class traits, class Allocator>
69
+ constexpr basic_string<charT, traits, Allocator>
70
+ operator+(const basic_string<charT, traits, Allocator>& lhs,
71
+ type_identity_t<basic_string_view<charT, traits>> rhs);
72
+ template<class charT, class traits, class Allocator>
73
+ constexpr basic_string<charT, traits, Allocator>
74
+ operator+(basic_string<charT, traits, Allocator>&& lhs,
75
+ type_identity_t<basic_string_view<charT, traits>> rhs);
76
+ template<class charT, class traits, class Allocator>
77
+ constexpr basic_string<charT, traits, Allocator>
78
+ operator+(type_identity_t<basic_string_view<charT, traits>> lhs,
79
+ const basic_string<charT, traits, Allocator>& rhs);
80
+ template<class charT, class traits, class Allocator>
81
+ constexpr basic_string<charT, traits, Allocator>
82
+ operator+(type_identity_t<basic_string_view<charT, traits>> lhs,
83
+ basic_string<charT, traits, Allocator>&& rhs);
84
 
85
  template<class charT, class traits, class Allocator>
86
  constexpr bool
87
  operator==(const basic_string<charT, traits, Allocator>& lhs,
88
  const basic_string<charT, traits, Allocator>& rhs) noexcept;
 
131
  basic_istream<charT, traits>&
132
  getline(basic_istream<charT, traits>&& is,
133
  basic_string<charT, traits, Allocator>& str);
134
 
135
  // [string.erasure], erasure
136
+ template<class charT, class traits, class Allocator, class U = charT>
137
  constexpr typename basic_string<charT, traits, Allocator>::size_type
138
  erase(basic_string<charT, traits, Allocator>& c, const U& value);
139
  template<class charT, class traits, class Allocator, class Predicate>
140
  constexpr typename basic_string<charT, traits, Allocator>::size_type
141
  erase_if(basic_string<charT, traits, Allocator>& c, Predicate pred);