From Jason Turner

[expr.type]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpwbip1f39/{from.md → to.md} +10 -9
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]]), 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,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 cv-combined type
34
- [[conv.qual]] of `T1` and `T2` or the cv-combined type of `T2` and
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 cv-combined type of
46
- `T2` and `T1` or the cv-combined type of `T1` and `T2`, respectively;
47
- - if `T1` and `T2` are similar types [[conv.qual]], the cv-combined type
48
- of `T1` and `T2`;
 
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