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 |
+
|