From Jason Turner

[string.op.plus]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp4ip_iy38/{from.md → to.md} +64 -0
tmp/tmp4ip_iy38/{from.md → to.md} RENAMED
@@ -138,5 +138,69 @@ template<class charT, class traits, class Allocator>
138
  ``` cpp
139
  lhs.push_back(rhs);
140
  return std::move(lhs);
141
  ```
142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  ``` cpp
139
  lhs.push_back(rhs);
140
  return std::move(lhs);
141
  ```
142
 
143
+ ``` cpp
144
+ template<class charT, class traits, class Allocator>
145
+ constexpr basic_string<charT, traits, Allocator>
146
+ operator+(const basic_string<charT, traits, Allocator>& lhs,
147
+ type_identity_t<basic_string_view<charT, traits>> rhs);
148
+ ```
149
+
150
+ Equivalent to:
151
+
152
+ ``` cpp
153
+ basic_string<charT, traits, Allocator> r = lhs;
154
+ r.append(rhs);
155
+ return r;
156
+ ```
157
+
158
+ ``` cpp
159
+ template<class charT, class traits, class Allocator>
160
+ constexpr basic_string<charT, traits, Allocator>
161
+ operator+(basic_string<charT, traits, Allocator>&& lhs,
162
+ type_identity_t<basic_string_view<charT, traits>> rhs);
163
+ ```
164
+
165
+ Equivalent to:
166
+
167
+ ``` cpp
168
+ lhs.append(rhs);
169
+ return std::move(lhs);
170
+ ```
171
+
172
+ ``` cpp
173
+ template<class charT, class traits, class Allocator>
174
+ constexpr basic_string<charT, traits, Allocator>
175
+ operator+(type_identity_t<basic_string_view<charT, traits>> lhs,
176
+ const basic_string<charT, traits, Allocator>& rhs);
177
+ ```
178
+
179
+ Equivalent to:
180
+
181
+ ``` cpp
182
+ basic_string<charT, traits, Allocator> r = rhs;
183
+ r.insert(0, lhs);
184
+ return r;
185
+ ```
186
+
187
+ ``` cpp
188
+ template<class charT, class traits, class Allocator>
189
+ constexpr basic_string<charT, traits, Allocator>
190
+ operator+(type_identity_t<basic_string_view<charT, traits>> lhs,
191
+ basic_string<charT, traits, Allocator>&& rhs);
192
+ ```
193
+
194
+ Equivalent to:
195
+
196
+ ``` cpp
197
+ rhs.insert(0, lhs);
198
+ return std::move(rhs);
199
+ ```
200
+
201
+ [*Note 1*: Using a specialization of `type_identity_t` as a parameter
202
+ type ensures that an object of type
203
+ `basic_string<charT, traits, Allocator>` can be concatenated with an
204
+ object of a type `T` having an implicit conversion to
205
+ `basic_string_view<charT, traits>` [[over.match.oper]]. — *end note*]
206
+