tmp/tmp3c0yvl9a/{from.md → to.md}
RENAMED
|
@@ -2,27 +2,29 @@
|
|
| 2 |
|
| 3 |
Under the conditions specified in [[dcl.init.ref]], a reference can be
|
| 4 |
bound directly to a glvalue or class prvalue that is the result of
|
| 5 |
applying a conversion function to an initializer expression. Overload
|
| 6 |
resolution is used to select the conversion function to be invoked.
|
| 7 |
-
Assuming that “*cv1* `T`” is the
|
| 8 |
-
initialized, and “
|
| 9 |
-
with `S` a class type, the candidate functions are selected
|
|
|
|
| 10 |
|
| 11 |
- The conversion functions of `S` and its base classes are considered.
|
| 12 |
Those non-explicit conversion functions that are not hidden within `S`
|
| 13 |
and yield type “lvalue reference to *cv2* `T2`” (when initializing an
|
| 14 |
-
lvalue reference or an rvalue reference to function) or “ `T2`”
|
| 15 |
-
“rvalue reference to `T2`” (when initializing an rvalue
|
| 16 |
-
an lvalue reference to function), where “*cv1* `T`” is
|
| 17 |
reference-compatible ([[dcl.init.ref]]) with “*cv2* `T2`”, are
|
| 18 |
candidate functions. For direct-initialization, those explicit
|
| 19 |
conversion functions that are not hidden within `S` and yield type
|
| 20 |
“lvalue reference to *cv2* `T2`” or “*cv2* `T2`” or “rvalue reference
|
| 21 |
-
to *cv2* `T2`
|
| 22 |
can be converted to type `T` with a qualification conversion (
|
| 23 |
[[conv.qual]]), are also candidate functions.
|
| 24 |
|
| 25 |
The argument list has one argument, which is the initializer expression.
|
| 26 |
-
|
| 27 |
-
the
|
|
|
|
| 28 |
|
|
|
|
| 2 |
|
| 3 |
Under the conditions specified in [[dcl.init.ref]], a reference can be
|
| 4 |
bound directly to a glvalue or class prvalue that is the result of
|
| 5 |
applying a conversion function to an initializer expression. Overload
|
| 6 |
resolution is used to select the conversion function to be invoked.
|
| 7 |
+
Assuming that “reference to *cv1* `T`” is the type of the reference
|
| 8 |
+
being initialized, and “cv `S`” is the type of the initializer
|
| 9 |
+
expression, with `S` a class type, the candidate functions are selected
|
| 10 |
+
as follows:
|
| 11 |
|
| 12 |
- The conversion functions of `S` and its base classes are considered.
|
| 13 |
Those non-explicit conversion functions that are not hidden within `S`
|
| 14 |
and yield type “lvalue reference to *cv2* `T2`” (when initializing an
|
| 15 |
+
lvalue reference or an rvalue reference to function) or “*cv2* `T2`”
|
| 16 |
+
or “rvalue reference to *cv2* `T2`” (when initializing an rvalue
|
| 17 |
+
reference or an lvalue reference to function), where “*cv1* `T`” is
|
| 18 |
reference-compatible ([[dcl.init.ref]]) with “*cv2* `T2`”, are
|
| 19 |
candidate functions. For direct-initialization, those explicit
|
| 20 |
conversion functions that are not hidden within `S` and yield type
|
| 21 |
“lvalue reference to *cv2* `T2`” or “*cv2* `T2`” or “rvalue reference
|
| 22 |
+
to *cv2* `T2`”, respectively, where `T2` is the same type as `T` or
|
| 23 |
can be converted to type `T` with a qualification conversion (
|
| 24 |
[[conv.qual]]), are also candidate functions.
|
| 25 |
|
| 26 |
The argument list has one argument, which is the initializer expression.
|
| 27 |
+
|
| 28 |
+
[*Note 1*: This argument will be compared against the implicit object
|
| 29 |
+
parameter of the conversion functions. — *end note*]
|
| 30 |
|