tmp/tmpwbip1f39/{from.md → to.md}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
| 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]]
|
| 5 |
further analysis. The expression designates the object or function
|
| 6 |
denoted by the reference, and the expression is an lvalue or an xvalue,
|
| 7 |
depending on the expression.
|
| 8 |
|
| 9 |
[*Note 1*: Before the lifetime of the reference has started or after it
|
|
@@ -28,26 +28,27 @@ pointer-to-member type or `std::nullptr_t`, is:
|
|
| 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 *cv1* `C1`” and `T2` is “pointer to *cv2*
|
| 32 |
`C2`”, where `C1` is reference-related to `C2` or `C2` is
|
| 33 |
-
reference-related to `C1` [[dcl.init.ref]], the
|
| 34 |
-
[[conv.qual]] of `T1` and `T2` or the
|
| 35 |
-
`T1`, respectively;
|
| 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
|
| 41 |
member of `C1` of type function”, respectively;
|
| 42 |
- if `T1` is “pointer to member of `C1` of type *cv1* `U`” and `T2` is
|
| 43 |
“pointer to member of `C2` of type *cv2* `U`”, for some non-function
|
| 44 |
type `U`, where `C1` is reference-related to `C2` or `C2` is
|
| 45 |
-
reference-related to `C1` [[dcl.init.ref]], the
|
| 46 |
-
`T2` and `T1` or the
|
| 47 |
-
|
| 48 |
-
|
|
|
|
| 49 |
- otherwise, a program that necessitates the determination of a
|
| 50 |
composite pointer type is ill-formed.
|
| 51 |
|
| 52 |
[*Example 1*:
|
| 53 |
|
|
|
|
| 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 expression designates the object or function
|
| 6 |
denoted by the reference, and the expression is an lvalue or an xvalue,
|
| 7 |
depending on the expression.
|
| 8 |
|
| 9 |
[*Note 1*: Before the lifetime of the reference has started or after it
|
|
|
|
| 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 *cv1* `C1`” and `T2` is “pointer to *cv2*
|
| 32 |
`C2`”, where `C1` is reference-related to `C2` or `C2` is
|
| 33 |
+
reference-related to `C1` [[dcl.init.ref]], the qualification-combined
|
| 34 |
+
type [[conv.qual]] of `T1` and `T2` or the qualification-combined type
|
| 35 |
+
of `T2` and `T1`, respectively;
|
| 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
|
| 41 |
member of `C1` of type function”, respectively;
|
| 42 |
- if `T1` is “pointer to member of `C1` of type *cv1* `U`” and `T2` is
|
| 43 |
“pointer to member of `C2` of type *cv2* `U`”, for some non-function
|
| 44 |
type `U`, where `C1` is reference-related to `C2` or `C2` is
|
| 45 |
+
reference-related to `C1` [[dcl.init.ref]], the qualification-combined
|
| 46 |
+
type of `T2` and `T1` or the qualification-combined type of `T1` and
|
| 47 |
+
`T2`, respectively;
|
| 48 |
+
- if `T1` and `T2` are similar types [[conv.qual]], the
|
| 49 |
+
qualification-combined type of `T1` and `T2`;
|
| 50 |
- otherwise, a program that necessitates the determination of a
|
| 51 |
composite pointer type is ill-formed.
|
| 52 |
|
| 53 |
[*Example 1*:
|
| 54 |
|