tmp/tmpn2tscli6/{from.md → to.md}
RENAMED
|
@@ -14,25 +14,21 @@ 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 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 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
|
| 36 |
-
of the constructors and against the
|
| 37 |
-
|
| 38 |
|
|
|
|
| 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 |
+
conversion functions are considered. The permissible types for
|
| 20 |
+
non-explicit conversion functions are `T` and any class derived from
|
| 21 |
+
`T`. When initializing a temporary object [[class.mem]] to be bound to
|
| 22 |
+
the first parameter of a constructor where the parameter is of type
|
| 23 |
+
“reference to *cv2* `T`” and the constructor is called with a single
|
| 24 |
+
argument in the context of direct-initialization of an object of type
|
| 25 |
+
“*cv3* `T`”, the permissible types for explicit conversion functions
|
| 26 |
+
are the same; otherwise there are none.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
In both cases, the argument list has one argument, which is the
|
| 29 |
initializer expression.
|
| 30 |
|
| 31 |
[*Note 2*: This argument will be compared against the first parameter
|
| 32 |
+
of the constructors and against the object parameter of the conversion
|
| 33 |
+
functions. — *end note*]
|
| 34 |
|