tmp/tmpaezy1fgx/{from.md → to.md}
RENAMED
|
@@ -11,25 +11,25 @@ to a possibly cv-qualified class type is determined in terms of a
|
|
| 11 |
corresponding non-reference copy-initialization. — *end note*]
|
| 12 |
|
| 13 |
Assuming that “*cv1* `T`” is the type of the object being initialized,
|
| 14 |
with `T` a class type, the candidate functions are selected as follows:
|
| 15 |
|
| 16 |
-
- The converting constructors
|
| 17 |
-
|
| 18 |
- When the type of the initializer expression is a class type “cv `S`”,
|
| 19 |
the non-explicit conversion functions of `S` and its base classes are
|
| 20 |
-
considered. When initializing a temporary
|
| 21 |
-
parameter of a constructor where the parameter is
|
| 22 |
-
|
| 23 |
single argument in the context of direct-initialization of an object
|
| 24 |
-
of type “*
|
| 25 |
considered. Those that are not hidden within `S` and yield a type
|
| 26 |
whose cv-unqualified version is the same type as `T` or is a derived
|
| 27 |
-
class thereof are candidate functions.
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
|
| 32 |
In both cases, the argument list has one argument, which is the
|
| 33 |
initializer expression.
|
| 34 |
|
| 35 |
[*Note 2*: This argument will be compared against the first parameter
|
|
|
|
| 11 |
corresponding non-reference copy-initialization. — *end note*]
|
| 12 |
|
| 13 |
Assuming that “*cv1* `T`” is the type of the object being initialized,
|
| 14 |
with `T` a class type, the candidate functions are selected as follows:
|
| 15 |
|
| 16 |
+
- The converting constructors [[class.conv.ctor]] of `T` are candidate
|
| 17 |
+
functions.
|
| 18 |
- When the type of the initializer expression is a class type “cv `S`”,
|
| 19 |
the non-explicit conversion functions of `S` and its base classes are
|
| 20 |
+
considered. When initializing a temporary object [[class.mem]] to be
|
| 21 |
+
bound to the first parameter of a constructor where the parameter is
|
| 22 |
+
of type “reference to *cv2* `T`” and the constructor is called with a
|
| 23 |
single argument in the context of direct-initialization of an object
|
| 24 |
+
of type “*cv3* `T`”, explicit conversion functions are also
|
| 25 |
considered. Those that are not hidden within `S` and yield a type
|
| 26 |
whose cv-unqualified version is the same type as `T` or is a derived
|
| 27 |
+
class thereof are candidate functions. A call to a conversion function
|
| 28 |
+
returning “reference to `X`” is a glvalue of type `X`, and such a
|
| 29 |
+
conversion function is therefore considered to yield `X` for this
|
| 30 |
+
process of selecting candidate functions.
|
| 31 |
|
| 32 |
In both cases, the argument list has one argument, which is the
|
| 33 |
initializer expression.
|
| 34 |
|
| 35 |
[*Note 2*: This argument will be compared against the first parameter
|