|
11482 | 11482 | \pnum
|
11483 | 11483 | \requires
|
11484 | 11484 | Uses-allocator construction of \tcode{T}
|
11485 |
| -with allocator \tcode{resource()} (see~\ref{allocator.uses.construction}) |
| 11485 | +with allocator \tcode{*this} (see~\ref{allocator.uses.construction}) |
11486 | 11486 | and constructor arguments \tcode{std::forward<Args>(args)...} is well-formed.
|
11487 | 11487 | \begin{note}
|
11488 | 11488 | Uses-allocator construction is always well-formed
|
|
11492 | 11492 | \effects
|
11493 | 11493 | Construct a \tcode{T} object in the storage
|
11494 | 11494 | whose address is represented by \tcode{p}
|
11495 |
| -by uses-allocator construction with allocator \tcode{resource()} |
| 11495 | +by uses-allocator construction with allocator \tcode{*this} |
11496 | 11496 | and constructor arguments \tcode{std::forward<Args>(args)...}.
|
11497 | 11497 |
|
11498 | 11498 | \pnum
|
@@ -11522,60 +11522,60 @@
|
11522 | 11522 | constructing a \tcode{pair<T1, T2>} object
|
11523 | 11523 | in the storage whose address is represented by \tcode{p},
|
11524 | 11524 | as if by separate uses-allocator construction
|
11525 |
| -with allocator \tcode{resource()}\iref{allocator.uses.construction} |
| 11525 | +with allocator \tcode{*this}\iref{allocator.uses.construction} |
11526 | 11526 | of \tcode{p->first} using the elements of \tcode{x}
|
11527 | 11527 | and \tcode{p->second} using the elements of \tcode{y}.
|
11528 | 11528 | \end{note}
|
11529 | 11529 | \begin{itemize}
|
11530 | 11530 | \item
|
11531 |
| -If \tcode{uses_allocator_v<T1,memory_resource*>} is \tcode{false} |
| 11531 | +If \tcode{uses_allocator_v<T1,polymorphic_allocator>} is \tcode{false} |
11532 | 11532 | \\
|
11533 | 11533 | and
|
11534 | 11534 | \tcode{is_constructible_v<T1,Args1...>} is \tcode{true},
|
11535 | 11535 | \\
|
11536 | 11536 | then \tcode{xprime} is \tcode{x}.
|
11537 | 11537 | \item
|
11538 |
| -Otherwise, if \tcode{uses_allocator_v<T1,memory_resource*>} is \tcode{true} |
| 11538 | +Otherwise, if \tcode{uses_allocator_v<T1,polymorphic_allocator>} is \tcode{true} |
11539 | 11539 | \\
|
11540 | 11540 | and
|
11541 |
| -\tcode{is_constructible_v<T1,allocator_arg_t,memory_resource*,Args1...>} is \tcode{true}, |
| 11541 | +\tcode{is_constructible_v<T1,allocator_arg_t,polymorphic_allocator,Args1...>} is \tcode{true}, |
11542 | 11542 | \\
|
11543 |
| -then \tcode{xprime} is \tcode{tuple_cat(make_tuple(allocator_arg, resource()), std::move(x))}. |
| 11543 | +then \tcode{xprime} is \tcode{tuple_cat(make_tuple(allocator_arg, *this), std::move(x))}. |
11544 | 11544 | \item
|
11545 |
| -Otherwise, if \tcode{uses_allocator_v<T1,memory_resource*>} is \tcode{true} |
| 11545 | +Otherwise, if \tcode{uses_allocator_v<T1,polymorphic_allocator>} is \tcode{true} |
11546 | 11546 | \\
|
11547 | 11547 | and
|
11548 |
| -\tcode{is_constructible_v<T1,Args1...,memory_resource*>} is \tcode{true}, |
| 11548 | +\tcode{is_constructible_v<T1,Args1...,polymorphic_allocator>} is \tcode{true}, |
11549 | 11549 | \\
|
11550 |
| -then \tcode{xprime} is \tcode{tuple_cat(std::move(x), make_tuple(resource()))}. |
| 11550 | +then \tcode{xprime} is \tcode{tuple_cat(std::move(x), make_tuple(*this))}. |
11551 | 11551 | \item
|
11552 | 11552 | Otherwise the program is ill formed.
|
11553 | 11553 | \end{itemize}
|
11554 | 11554 | Let \tcode{yprime} be a tuple constructed from \tcode{y}
|
11555 | 11555 | according to the appropriate rule from the following list:
|
11556 | 11556 | \begin{itemize}
|
11557 | 11557 | \item
|
11558 |
| -If \tcode{uses_allocator_v<T2,memory_resource*>} is \tcode{false} |
| 11558 | +If \tcode{uses_allocator_v<T2,polymorphic_allocator>} is \tcode{false} |
11559 | 11559 | \\
|
11560 | 11560 | and
|
11561 | 11561 | \tcode{is_constructible_v<T2,Args2...>} is \tcode{true},
|
11562 | 11562 | \\
|
11563 | 11563 | then \tcode{yprime} is \tcode{y}.
|
11564 | 11564 | \item
|
11565 |
| -Otherwise, if \tcode{uses_allocator_v<T2,memory_resource*>} is \tcode{true} |
| 11565 | +Otherwise, if \tcode{uses_allocator_v<T2,polymorphic_allocator>} is \tcode{true} |
11566 | 11566 | \\
|
11567 | 11567 | and
|
11568 |
| -\tcode{is_constructible_v<T2,allocator_arg_t,memory_resource*,Args2...>} is \tcode{true}, |
| 11568 | +\tcode{is_constructible_v<T2,allocator_arg_t,polymorphic_allocator,Args2...>} is \tcode{true}, |
11569 | 11569 | \\
|
11570 |
| -then \tcode{yprime} is \tcode{tuple_cat(make_tuple(allocator_arg, resource()), std::move(y))}. |
| 11570 | +then \tcode{yprime} is \tcode{tuple_cat(make_tuple(allocator_arg, *this), std::move(y))}. |
11571 | 11571 | \item
|
11572 |
| -Otherwise, if \tcode{uses_allocator_v<T2,memory_resource*>} is \tcode{true} |
| 11572 | +Otherwise, if \tcode{uses_allocator_v<T2,polymorphic_allocator>} is \tcode{true} |
11573 | 11573 | \\
|
11574 | 11574 | and
|
11575 |
| -\tcode{is_constructible_v<T2,Args2...,memory_resource*>} is \tcode{true}, |
| 11575 | +\tcode{is_constructible_v<T2,Args2...,polymorphic_allocator>} is \tcode{true}, |
11576 | 11576 | \\
|
11577 | 11577 | then
|
11578 |
| -\tcode{yprime} is \tcode{tuple_cat(std::move(y), make_tuple(resource()))}. |
| 11578 | +\tcode{yprime} is \tcode{tuple_cat(std::move(y), make_tuple(*this))}. |
11579 | 11579 | \item
|
11580 | 11580 | Otherwise the program is ill formed.
|
11581 | 11581 | \end{itemize}
|
|
0 commit comments