|
4610 | 4610 | The default type for the template parameter \tcode{D} is
|
4611 | 4611 | \tcode{default_delete}. A client-supplied template argument
|
4612 | 4612 | \tcode{D} shall be a function
|
4613 |
| -object type~(\ref{function.objects}), lvalue-reference to function, or |
4614 |
| -lvalue-reference to function object type |
| 4613 | +object type~(\ref{function.objects}), lvalue reference to function, or |
| 4614 | +lvalue reference to function object type |
4615 | 4615 | for which, given
|
4616 | 4616 | a value \tcode{d} of type \tcode{D} and a value
|
4617 | 4617 | \tcode{ptr} of type \tcode{unique_ptr<T, D>::pointer}, the expression
|
|
4708 | 4708 | \end{codeblock}
|
4709 | 4709 |
|
4710 | 4710 | \pnum
|
4711 |
| -If \tcode{D} is an lvalue-reference type \tcode{A\&}, |
| 4711 | +If \tcode{D} is an lvalue reference type \tcode{A\&}, |
4712 | 4712 | then the signatures are:
|
4713 | 4713 |
|
4714 | 4714 | \begin{codeblock}
|
|
4717 | 4717 | \end{codeblock}
|
4718 | 4718 |
|
4719 | 4719 | \pnum
|
4720 |
| -If \tcode{D} is an lvalue-reference type \tcode{const A\&}, |
| 4720 | +If \tcode{D} is an lvalue reference type \tcode{const A\&}, |
4721 | 4721 | then the signatures are:
|
4722 | 4722 |
|
4723 | 4723 | \begin{codeblock}
|
|
4728 | 4728 | \pnum
|
4729 | 4729 | \requires
|
4730 | 4730 | \begin{itemize}
|
4731 |
| -\item If \tcode{D} is not an lvalue-reference type then |
| 4731 | +\item If \tcode{D} is not an lvalue reference type then |
4732 | 4732 |
|
4733 | 4733 | \begin{itemize}
|
4734 | 4734 | \item If \tcode{d} is an lvalue or \tcode{const} rvalue then
|
|
4749 | 4749 | hold a value move constructed from \tcode{d}.
|
4750 | 4750 | \end{itemize}
|
4751 | 4751 |
|
4752 |
| -\item Otherwise \tcode{D} is an lvalue-reference type. \tcode{d} |
| 4752 | +\item Otherwise \tcode{D} is an lvalue reference type. \tcode{d} |
4753 | 4753 | shall be reference-compatible with one of the constructors. If \tcode{d} is
|
4754 | 4754 | an rvalue, it will bind to the second constructor of this pair and the program is
|
4755 | 4755 | ill-formed. \enternote The diagnostic could
|
|
4759 | 4759 | which \tcode{D} references need not be \tcode{CopyConstructible}
|
4760 | 4760 | nor \tcode{MoveConstructible}. This \tcode{unique_ptr} will
|
4761 | 4761 | hold a \tcode{D} which refers to the lvalue \tcode{d}.
|
4762 |
| -\enternote \tcode{D} may not be an rvalue-reference type. |
| 4762 | +\enternote \tcode{D} may not be an rvalue reference type. |
4763 | 4763 | \exitnote
|
4764 | 4764 | \end{itemize}
|
4765 | 4765 |
|
|
7360 | 7360 | do not throw exceptions. A \term{forwarding call wrapper} is a
|
7361 | 7361 | call wrapper that can be called with an arbitrary argument list
|
7362 | 7362 | and delivers the arguments to the wrapped callable object as references.
|
7363 |
| -This forwarding step shall ensure that rvalue arguments are delivered as rvalue-references |
7364 |
| -and lvalue arguments are delivered as lvalue-references. |
| 7363 | +This forwarding step shall ensure that rvalue arguments are delivered as rvalue references |
| 7364 | +and lvalue arguments are delivered as lvalue references. |
7365 | 7365 | \enternote In a typical implementation
|
7366 | 7366 | forwarding call wrappers have an overloaded function call
|
7367 | 7367 | operator of
|
|
0 commit comments