tmp/tmprq7_dn0b/{from.md → to.md}
RENAMED
|
@@ -90,11 +90,11 @@ namespace std {
|
|
| 90 |
pointer allocate(size_type n, const_void_pointer hint);
|
| 91 |
void deallocate(pointer p, size_type n);
|
| 92 |
size_type max_size() const;
|
| 93 |
|
| 94 |
template <class T, class... Args>
|
| 95 |
-
void construct(T* p, Args&& args);
|
| 96 |
template <class T1, class T2, class... Args1, class... Args2>
|
| 97 |
void construct(pair<T1, T2>* p, piecewise_construct_t,
|
| 98 |
tuple<Args1...> x, tuple<Args2...> y);
|
| 99 |
template <class T1, class T2>
|
| 100 |
void construct(pair<T1, T2>* p);
|
|
@@ -161,11 +161,11 @@ any `A` in the set of `OuterAlloc` and `InnerAllocs...`; otherwise,
|
|
| 161 |
|
| 162 |
``` cpp
|
| 163 |
scoped_allocator_adaptor();
|
| 164 |
```
|
| 165 |
|
| 166 |
-
*Effects:* value-initializes the OuterAlloc base class and the `inner`
|
| 167 |
allocator object.
|
| 168 |
|
| 169 |
``` cpp
|
| 170 |
template <class OuterA2>
|
| 171 |
scoped_allocator_adaptor(OuterA2&& outerAlloc,
|
|
@@ -318,16 +318,16 @@ following rules:
|
|
| 318 |
`x`.
|
| 319 |
- Otherwise, if `uses_allocator<T1, inner_allocator_type>::value` is
|
| 320 |
`true` and
|
| 321 |
`is_constructible<T1, allocator_arg_t, inner_allocator_type, Args1...>::value`
|
| 322 |
is `true`, then `xprime` is
|
| 323 |
-
`tuple_cat(tuple<allocator_arg_t, inner_allocator_type&>( allocator_arg,
|
| 324 |
- Otherwise, if `uses_allocator<T1, inner_allocator_type>::value` is
|
| 325 |
`true` and
|
| 326 |
`is_constructible<T1, Args1..., inner_allocator_type>::value` is
|
| 327 |
`true`, then `xprime` is
|
| 328 |
-
`tuple_cat(x, tuple<inner_allocator_type&>(
|
| 329 |
- Otherwise, the program is ill-formed.
|
| 330 |
|
| 331 |
and constructs a `tuple` object `yprime` from `y` by the following
|
| 332 |
rules:
|
| 333 |
|
|
@@ -336,52 +336,52 @@ rules:
|
|
| 336 |
`y`.
|
| 337 |
- Otherwise, if `uses_allocator<T2, inner_allocator_type>::value` is
|
| 338 |
`true` and
|
| 339 |
`is_constructible<T2, allocator_arg_t, inner_allocator_type, Args2...>::value`
|
| 340 |
is `true`, then `yprime` is
|
| 341 |
-
`tuple_cat(tuple<allocator_arg_t, inner_allocator_type&>( allocator_arg,
|
| 342 |
- Otherwise, if `uses_allocator<T2, inner_allocator_type>::value` is
|
| 343 |
`true` and
|
| 344 |
`is_constructible<T2, Args2..., inner_allocator_type>::value` is
|
| 345 |
`true`, then `yprime` is
|
| 346 |
-
`tuple_cat(y, tuple<inner_allocator_type&>(
|
| 347 |
- Otherwise, the program is ill-formed.
|
| 348 |
|
| 349 |
then calls
|
| 350 |
*`OUTERMOST_ALLOC_TRAITS`*`(*this)::construct(`*`OUTERMOST`*`(*this), p,`
|
| 351 |
-
`piecewise_construct, xprime, yprime)`.
|
| 352 |
|
| 353 |
``` cpp
|
| 354 |
template <class T1, class T2>
|
| 355 |
void construct(pair<T1, T2>* p);
|
| 356 |
```
|
| 357 |
|
| 358 |
-
*Effects:*
|
| 359 |
`this->construct(p, piecewise_construct, tuple<>(), tuple<>())`.
|
| 360 |
|
| 361 |
``` cpp
|
| 362 |
template <class T1, class T2, class U, class V>
|
| 363 |
void construct(pair<T1, T2>* p, U&& x, V&& y);
|
| 364 |
```
|
| 365 |
|
| 366 |
-
*Effects:*
|
| 367 |
`this->construct(p, piecewise_construct, forward_as_tuple(std::forward<U>(x)), forward_as_tuple(std::forward<V>(y)))`.
|
| 368 |
|
| 369 |
``` cpp
|
| 370 |
template <class T1, class T2, class U, class V>
|
| 371 |
void construct(pair<T1, T2>* p, const pair<U, V>& x);
|
| 372 |
```
|
| 373 |
|
| 374 |
-
*Effects:*
|
| 375 |
`this->construct(p, piecewise_construct, forward_as_tuple(x.first), forward_as_tuple(x.second))`.
|
| 376 |
|
| 377 |
``` cpp
|
| 378 |
template <class T1, class T2, class U, class V>
|
| 379 |
void construct(pair<T1, T2>* p, pair<U, V>&& x);
|
| 380 |
```
|
| 381 |
|
| 382 |
-
*Effects:*
|
| 383 |
`this->construct(p, piecewise_construct, forward_as_tuple(std::forward<U>(x.first)), forward_as_tuple(std::forward<V>(x.second)))`.
|
| 384 |
|
| 385 |
``` cpp
|
| 386 |
template <class T>
|
| 387 |
void destroy(T* p);
|
|
|
|
| 90 |
pointer allocate(size_type n, const_void_pointer hint);
|
| 91 |
void deallocate(pointer p, size_type n);
|
| 92 |
size_type max_size() const;
|
| 93 |
|
| 94 |
template <class T, class... Args>
|
| 95 |
+
void construct(T* p, Args&&... args);
|
| 96 |
template <class T1, class T2, class... Args1, class... Args2>
|
| 97 |
void construct(pair<T1, T2>* p, piecewise_construct_t,
|
| 98 |
tuple<Args1...> x, tuple<Args2...> y);
|
| 99 |
template <class T1, class T2>
|
| 100 |
void construct(pair<T1, T2>* p);
|
|
|
|
| 161 |
|
| 162 |
``` cpp
|
| 163 |
scoped_allocator_adaptor();
|
| 164 |
```
|
| 165 |
|
| 166 |
+
*Effects:* value-initializes the `OuterAlloc` base class and the `inner`
|
| 167 |
allocator object.
|
| 168 |
|
| 169 |
``` cpp
|
| 170 |
template <class OuterA2>
|
| 171 |
scoped_allocator_adaptor(OuterA2&& outerAlloc,
|
|
|
|
| 318 |
`x`.
|
| 319 |
- Otherwise, if `uses_allocator<T1, inner_allocator_type>::value` is
|
| 320 |
`true` and
|
| 321 |
`is_constructible<T1, allocator_arg_t, inner_allocator_type, Args1...>::value`
|
| 322 |
is `true`, then `xprime` is
|
| 323 |
+
`tuple_cat(tuple<allocator_arg_t, inner_allocator_type&>( allocator_arg, inner_allocator()), std::move(x))`.
|
| 324 |
- Otherwise, if `uses_allocator<T1, inner_allocator_type>::value` is
|
| 325 |
`true` and
|
| 326 |
`is_constructible<T1, Args1..., inner_allocator_type>::value` is
|
| 327 |
`true`, then `xprime` is
|
| 328 |
+
`tuple_cat(std::move(x), tuple<inner_allocator_type&>(inner_allocator()))`.
|
| 329 |
- Otherwise, the program is ill-formed.
|
| 330 |
|
| 331 |
and constructs a `tuple` object `yprime` from `y` by the following
|
| 332 |
rules:
|
| 333 |
|
|
|
|
| 336 |
`y`.
|
| 337 |
- Otherwise, if `uses_allocator<T2, inner_allocator_type>::value` is
|
| 338 |
`true` and
|
| 339 |
`is_constructible<T2, allocator_arg_t, inner_allocator_type, Args2...>::value`
|
| 340 |
is `true`, then `yprime` is
|
| 341 |
+
`tuple_cat(tuple<allocator_arg_t, inner_allocator_type&>( allocator_arg, inner_allocator()), std::move(y))`.
|
| 342 |
- Otherwise, if `uses_allocator<T2, inner_allocator_type>::value` is
|
| 343 |
`true` and
|
| 344 |
`is_constructible<T2, Args2..., inner_allocator_type>::value` is
|
| 345 |
`true`, then `yprime` is
|
| 346 |
+
`tuple_cat(std::move(y), tuple<inner_allocator_type&>(inner_allocator()))`.
|
| 347 |
- Otherwise, the program is ill-formed.
|
| 348 |
|
| 349 |
then calls
|
| 350 |
*`OUTERMOST_ALLOC_TRAITS`*`(*this)::construct(`*`OUTERMOST`*`(*this), p,`
|
| 351 |
+
`piecewise_construct, std::move(xprime), std::move(yprime))`.
|
| 352 |
|
| 353 |
``` cpp
|
| 354 |
template <class T1, class T2>
|
| 355 |
void construct(pair<T1, T2>* p);
|
| 356 |
```
|
| 357 |
|
| 358 |
+
*Effects:* Equivalent to
|
| 359 |
`this->construct(p, piecewise_construct, tuple<>(), tuple<>())`.
|
| 360 |
|
| 361 |
``` cpp
|
| 362 |
template <class T1, class T2, class U, class V>
|
| 363 |
void construct(pair<T1, T2>* p, U&& x, V&& y);
|
| 364 |
```
|
| 365 |
|
| 366 |
+
*Effects:* Equivalent to
|
| 367 |
`this->construct(p, piecewise_construct, forward_as_tuple(std::forward<U>(x)), forward_as_tuple(std::forward<V>(y)))`.
|
| 368 |
|
| 369 |
``` cpp
|
| 370 |
template <class T1, class T2, class U, class V>
|
| 371 |
void construct(pair<T1, T2>* p, const pair<U, V>& x);
|
| 372 |
```
|
| 373 |
|
| 374 |
+
*Effects:* Equivalent to
|
| 375 |
`this->construct(p, piecewise_construct, forward_as_tuple(x.first), forward_as_tuple(x.second))`.
|
| 376 |
|
| 377 |
``` cpp
|
| 378 |
template <class T1, class T2, class U, class V>
|
| 379 |
void construct(pair<T1, T2>* p, pair<U, V>&& x);
|
| 380 |
```
|
| 381 |
|
| 382 |
+
*Effects:* Equivalent to
|
| 383 |
`this->construct(p, piecewise_construct, forward_as_tuple(std::forward<U>(x.first)), forward_as_tuple(std::forward<V>(x.second)))`.
|
| 384 |
|
| 385 |
``` cpp
|
| 386 |
template <class T>
|
| 387 |
void destroy(T* p);
|