tmp/tmp2s_qdm1k/{from.md → to.md}
RENAMED
|
@@ -13,14 +13,14 @@ the C++standard library, unless explicitly stated otherwise.
|
|
| 13 |
fact valid.
|
| 14 |
- If a function argument binds to an rvalue reference parameter, the
|
| 15 |
implementation may assume that this parameter is a unique reference to
|
| 16 |
this argument. \[*Note 1*: If the parameter is a generic parameter of
|
| 17 |
the form `T&&` and an lvalue of type `A` is bound, the argument binds
|
| 18 |
-
to an lvalue reference
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
|
|
|
|
| 13 |
fact valid.
|
| 14 |
- If a function argument binds to an rvalue reference parameter, the
|
| 15 |
implementation may assume that this parameter is a unique reference to
|
| 16 |
this argument. \[*Note 1*: If the parameter is a generic parameter of
|
| 17 |
the form `T&&` and an lvalue of type `A` is bound, the argument binds
|
| 18 |
+
to an lvalue reference [[temp.deduct.call]] and thus is not covered by
|
| 19 |
+
the previous sentence. — *end note*] \[*Note 2*: If a program casts
|
| 20 |
+
an lvalue to an xvalue while passing that lvalue to a library function
|
| 21 |
+
(e.g., by calling the function with the argument `std::move(x)`), the
|
| 22 |
+
program is effectively asking that function to treat that lvalue as a
|
| 23 |
+
temporary object. The implementation is free to optimize away aliasing
|
| 24 |
+
checks which might be needed if the argument was an
|
| 25 |
+
lvalue. — *end note*]
|
| 26 |
|