tmp/tmppc8z4o16/{from.md → to.md}
RENAMED
|
@@ -4,16 +4,13 @@ The name `ranges::iter_move` denotes a customization point object
|
|
| 4 |
[[customization.point.object]]. The expression `ranges::iter_move(E)`
|
| 5 |
for a subexpression `E` is expression-equivalent to:
|
| 6 |
|
| 7 |
- `iter_move(E)`, if `E` has class or enumeration type and
|
| 8 |
`iter_move(E)` is a well-formed expression when treated as an
|
| 9 |
-
unevaluated operand,
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
``` cpp
|
| 13 |
-
void iter_move();
|
| 14 |
-
```
|
| 15 |
- Otherwise, if the expression `*E` is well-formed:
|
| 16 |
- if `*E` is an lvalue, `std::move(*E)`;
|
| 17 |
- otherwise, `*E`.
|
| 18 |
- Otherwise, `ranges::iter_move(E)` is ill-formed. \[*Note 1*: This case
|
| 19 |
can result in substitution failure when `ranges::iter_move(E)` appears
|
|
|
|
| 4 |
[[customization.point.object]]. The expression `ranges::iter_move(E)`
|
| 5 |
for a subexpression `E` is expression-equivalent to:
|
| 6 |
|
| 7 |
- `iter_move(E)`, if `E` has class or enumeration type and
|
| 8 |
`iter_move(E)` is a well-formed expression when treated as an
|
| 9 |
+
unevaluated operand, where the meaning of `iter_move` is established
|
| 10 |
+
as-if by performing argument-dependent lookup only
|
| 11 |
+
[[basic.lookup.argdep]].
|
|
|
|
|
|
|
|
|
|
| 12 |
- Otherwise, if the expression `*E` is well-formed:
|
| 13 |
- if `*E` is an lvalue, `std::move(*E)`;
|
| 14 |
- otherwise, `*E`.
|
| 15 |
- Otherwise, `ranges::iter_move(E)` is ill-formed. \[*Note 1*: This case
|
| 16 |
can result in substitution failure when `ranges::iter_move(E)` appears
|