|
1608 | 1608 |
|
1609 | 1609 | \pnum
|
1610 | 1610 | An \defnadj{implicitly movable}{entity} is
|
1611 |
| -a variable of automatic storage duration |
| 1611 | +a variable with automatic storage duration |
1612 | 1612 | that is either a non-volatile object or
|
1613 | 1613 | an rvalue reference to a non-volatile object type.
|
1614 |
| -In the following contexts, |
1615 |
| -an \grammarterm{id-expression} is \defn{move-eligible}: |
| 1614 | +An \grammarterm{id-expression} is \defn{move-eligible} if |
1616 | 1615 | \begin{itemize}
|
1617 | 1616 | \item
|
1618 |
| -If the \grammarterm{id-expression} (possibly parenthesized) |
1619 |
| -is the operand of a \tcode{return}\iref{stmt.return} or |
1620 |
| -\keyword{co_return}\iref{stmt.return.coroutine} statement, |
1621 |
| -and names an implicitly movable entity declared in the body |
1622 |
| -or \grammarterm{parameter-declaration-clause} of the innermost enclosing |
1623 |
| -function or \grammarterm{lambda-expression}, or |
1624 |
| -\item |
1625 |
| -if the \grammarterm{id-expression} (possibly parenthesized) |
1626 |
| -is the operand of a \grammarterm{throw-expression}\iref{expr.throw}, |
1627 |
| -and names an implicitly movable entity |
1628 |
| -that belongs to a scope that does not contain the \grammarterm{compound-statement} |
1629 |
| -of the innermost |
1630 |
| -\grammarterm{lambda-expression}, |
1631 |
| -\grammarterm{try-block}, or |
1632 |
| -\grammarterm{function-try-block} (if any) |
1633 |
| -whose \grammarterm{compound-statement} or \grammarterm{ctor-initializer} |
1634 |
| -contains the \grammarterm{throw-expression}. |
| 1617 | +it names an implicitly movable entity, |
| 1618 | +\item |
| 1619 | +it is the (possibly parenthesized) |
| 1620 | +operand of a \tcode{return}\iref{stmt.return} or |
| 1621 | +\keyword{co_return}\iref{stmt.return.coroutine} statement or |
| 1622 | +of a \grammarterm{throw-expression}\iref{expr.throw}, and |
| 1623 | +\item |
| 1624 | +each intervening scope between |
| 1625 | +the declaration of the entity and |
| 1626 | +the innermost enclosing scope of the \grammarterm{id-expression} |
| 1627 | +is a block scope and, |
| 1628 | +for a \grammarterm{throw-expression}, |
| 1629 | +is not the block scope of |
| 1630 | +a \grammarterm{try-block} or \grammarterm{function-try-block}. |
1635 | 1631 | \end{itemize}
|
1636 | 1632 |
|
1637 | 1633 | \rSec3[expr.prim.id.qual]{Qualified names}
|
|
0 commit comments