tmp/tmpca24rnuq/{from.md → to.md}
RENAMED
|
@@ -11,15 +11,16 @@ the C++standard library, unless explicitly stated otherwise.
|
|
| 11 |
address computations and accesses to objects (that would be valid if
|
| 12 |
the pointer did point to the first element of such an array) are in
|
| 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. If the parameter is a generic parameter of
|
| 17 |
-
`T&&` and an lvalue of type `A` is bound, the argument binds
|
| 18 |
-
lvalue reference ([[temp.deduct.call]]) and thus is not covered
|
| 19 |
-
the previous sentence.
|
| 20 |
-
|
| 21 |
-
function
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
needed if the argument
|
|
|
|
| 25 |
|
|
|
|
| 11 |
address computations and accesses to objects (that would be valid if
|
| 12 |
the pointer did point to the first element of such an array) are in
|
| 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
|
| 19 |
+
by the previous sentence. — *end note*] \[*Note 2*: If a program
|
| 20 |
+
casts an lvalue to an xvalue while passing that lvalue to a library
|
| 21 |
+
function (e.g. by calling the function with the argument
|
| 22 |
+
`std::move(x)`), the program is effectively asking that function to
|
| 23 |
+
treat that lvalue as a temporary. The implementation is free to
|
| 24 |
+
optimize away aliasing checks which might be needed if the argument
|
| 25 |
+
was an lvalue. — *end note*]
|
| 26 |
|