tmp/tmpr_u665jm/{from.md → to.md}
RENAMED
|
@@ -43,14 +43,15 @@ that determination. — *end note*]
|
|
| 43 |
Attempts are made to form an implicit conversion sequence from an
|
| 44 |
operand expression `E1` of type `T1` to a target type related to the
|
| 45 |
type `T2` of the operand expression `E2` as follows:
|
| 46 |
|
| 47 |
- If `E2` is an lvalue, the target type is “lvalue reference to `T2`”,
|
| 48 |
-
|
| 49 |
-
bind directly [[dcl.init.ref]] to a glvalue.
|
| 50 |
- If `E2` is an xvalue, the target type is “rvalue reference to `T2`”,
|
| 51 |
-
|
|
|
|
| 52 |
- If `E2` is a prvalue or if neither of the conversion sequences above
|
| 53 |
can be formed and at least one of the operands has (possibly
|
| 54 |
cv-qualified) class type:
|
| 55 |
- if `T1` and `T2` are the same class type (ignoring cv-qualification)
|
| 56 |
and `T2` is at least as cv-qualified as `T1`, the target type is
|
|
@@ -82,11 +83,11 @@ and it is a bit-field if the second or the third operand is a bit-field,
|
|
| 82 |
or if both are bit-fields.
|
| 83 |
|
| 84 |
Otherwise, the result is a prvalue. If the second and third operands do
|
| 85 |
not have the same type, and either has (possibly cv-qualified) class
|
| 86 |
type, overload resolution is used to determine the conversions (if any)
|
| 87 |
-
to be applied to the operands
|
| 88 |
the overload resolution fails, the program is ill-formed. Otherwise, the
|
| 89 |
conversions thus determined are applied, and the converted operands are
|
| 90 |
used in place of the original operands for the remainder of this
|
| 91 |
subclause.
|
| 92 |
|
|
|
|
| 43 |
Attempts are made to form an implicit conversion sequence from an
|
| 44 |
operand expression `E1` of type `T1` to a target type related to the
|
| 45 |
type `T2` of the operand expression `E2` as follows:
|
| 46 |
|
| 47 |
- If `E2` is an lvalue, the target type is “lvalue reference to `T2`”,
|
| 48 |
+
but an implicit conversion sequence can only be formed if the
|
| 49 |
+
reference would bind directly [[dcl.init.ref]] to a glvalue.
|
| 50 |
- If `E2` is an xvalue, the target type is “rvalue reference to `T2`”,
|
| 51 |
+
but an implicit conversion sequence can only be formed if the
|
| 52 |
+
reference would bind directly.
|
| 53 |
- If `E2` is a prvalue or if neither of the conversion sequences above
|
| 54 |
can be formed and at least one of the operands has (possibly
|
| 55 |
cv-qualified) class type:
|
| 56 |
- if `T1` and `T2` are the same class type (ignoring cv-qualification)
|
| 57 |
and `T2` is at least as cv-qualified as `T1`, the target type is
|
|
|
|
| 83 |
or if both are bit-fields.
|
| 84 |
|
| 85 |
Otherwise, the result is a prvalue. If the second and third operands do
|
| 86 |
not have the same type, and either has (possibly cv-qualified) class
|
| 87 |
type, overload resolution is used to determine the conversions (if any)
|
| 88 |
+
to be applied to the operands [[over.match.oper]], [[over.built]]. If
|
| 89 |
the overload resolution fails, the program is ill-formed. Otherwise, the
|
| 90 |
conversions thus determined are applied, and the converted operands are
|
| 91 |
used in place of the original operands for the remainder of this
|
| 92 |
subclause.
|
| 93 |
|