tmp/tmpa_ylz1q3/{from.md → to.md}
RENAMED
|
@@ -1,12 +1,14 @@
|
|
| 1 |
### Type <a id="expr.type">[[expr.type]]</a>
|
| 2 |
|
| 3 |
If an expression initially has the type “reference to `T`”
|
| 4 |
[[dcl.ref]], [[dcl.init.ref]], the type is adjusted to `T` prior to any
|
| 5 |
-
further analysis
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
| 8 |
|
| 9 |
[*Note 1*: Before the lifetime of the reference has started or after it
|
| 10 |
has ended, the behavior is undefined (see
|
| 11 |
[[basic.life]]). — *end note*]
|
| 12 |
|
|
@@ -26,15 +28,15 @@ pointer-to-member type or `std::nullptr_t`, is:
|
|
| 26 |
“pointer to *cv12* `void`”, where *cv12* is the union of *cv1* and
|
| 27 |
*cv2*;
|
| 28 |
- if `T1` or `T2` is “pointer to `noexcept` function” and the other type
|
| 29 |
is “pointer to function”, where the function types are otherwise the
|
| 30 |
same, “pointer to function”;
|
| 31 |
-
- if `T1` is “pointer to
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
- if `T1` or `T2` is “pointer to member of `C1` of type function”, the
|
| 37 |
other type is “pointer to member of `C2` of type `noexcept` function”,
|
| 38 |
and `C1` is reference-related to `C2` or `C2` is reference-related to
|
| 39 |
`C1` [[dcl.init.ref]], where the function types are otherwise the
|
| 40 |
same, “pointer to member of `C2` of type function” or “pointer to
|
|
|
|
| 1 |
### Type <a id="expr.type">[[expr.type]]</a>
|
| 2 |
|
| 3 |
If an expression initially has the type “reference to `T`”
|
| 4 |
[[dcl.ref]], [[dcl.init.ref]], the type is adjusted to `T` prior to any
|
| 5 |
+
further analysis; the value category of the expression is not altered.
|
| 6 |
+
Let X be the object or function denoted by the reference. If a pointer
|
| 7 |
+
to X would be valid in the context of the evaluation of the expression
|
| 8 |
+
[[basic.fundamental]], the result designates X; otherwise, the behavior
|
| 9 |
+
is undefined.
|
| 10 |
|
| 11 |
[*Note 1*: Before the lifetime of the reference has started or after it
|
| 12 |
has ended, the behavior is undefined (see
|
| 13 |
[[basic.life]]). — *end note*]
|
| 14 |
|
|
|
|
| 28 |
“pointer to *cv12* `void`”, where *cv12* is the union of *cv1* and
|
| 29 |
*cv2*;
|
| 30 |
- if `T1` or `T2` is “pointer to `noexcept` function” and the other type
|
| 31 |
is “pointer to function”, where the function types are otherwise the
|
| 32 |
same, “pointer to function”;
|
| 33 |
+
- if `T1` is “pointer to `C1`” and `T2` is “pointer to `C2`”, where `C1`
|
| 34 |
+
is reference-related to `C2` or `C2` is reference-related to `C1`
|
| 35 |
+
[[dcl.init.ref]], the qualification-combined type [[conv.qual]] of
|
| 36 |
+
`T1` and `T2` or the qualification-combined type of `T2` and `T1`,
|
| 37 |
+
respectively;
|
| 38 |
- if `T1` or `T2` is “pointer to member of `C1` of type function”, the
|
| 39 |
other type is “pointer to member of `C2` of type `noexcept` function”,
|
| 40 |
and `C1` is reference-related to `C2` or `C2` is reference-related to
|
| 41 |
`C1` [[dcl.init.ref]], where the function types are otherwise the
|
| 42 |
same, “pointer to member of `C2` of type function” or “pointer to
|