From Jason Turner

[over.match.conv]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpcydaqxho/{from.md → to.md} +11 -19
tmp/tmpcydaqxho/{from.md → to.md} RENAMED
@@ -2,29 +2,21 @@
2
 
3
  Under the conditions specified in  [[dcl.init]], as part of an
4
  initialization of an object of non-class type, a conversion function can
5
  be invoked to convert an initializer expression of class type to the
6
  type of the object being initialized. Overload resolution is used to
7
- select the conversion function to be invoked. Assuming that “*cv1* `T`”
8
- is the type of the object being initialized, and “cv `S`” is the type of
9
- the initializer expression, with `S` a class type, the candidate
10
- functions are selected 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 `T` or a type that can be converted to type `T` via a
15
- standard conversion sequence [[over.ics.scs]] are candidate functions.
16
- For direct-initialization, those explicit conversion functions that
17
- are not hidden within `S` and yield type `T` or a type that can be
18
- converted to type `T` with a qualification conversion [[conv.qual]]
19
- are also candidate functions. Conversion functions that return a
20
- cv-qualified type are considered to yield the cv-unqualified version
21
- of that type for this process of selecting candidate functions. A call
22
- to a conversion function returning “reference to `X`” is a glvalue of
23
- type `X`, and such a conversion function is therefore considered to
24
- yield `X` for this process of selecting 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
 
 
2
 
3
  Under the conditions specified in  [[dcl.init]], as part of an
4
  initialization of an object of non-class type, a conversion function can
5
  be invoked to convert an initializer expression of class type to the
6
  type of the object being initialized. Overload resolution is used to
7
+ select the conversion function to be invoked. Assuming that “cv `T`” is
8
+ the type of the object being initialized, the candidate functions are
9
+ selected as follows:
 
10
 
11
+ - The permissible types for non-explicit conversion functions are those
12
+ that can be converted to type `T` via a standard conversion sequence
13
+ [[over.ics.scs]]. For direct-initialization, the permissible types for
14
+ explicit conversion functions are those that can be converted to type
15
+ `T` with a (possibly trivial) qualification conversion [[conv.qual]];
16
+ otherwise there are none.
 
 
 
 
 
 
 
17
 
18
  The argument list has one argument, which is the initializer expression.
19
 
20
+ [*Note 1*: This argument will be compared against the object parameter
21
+ of the conversion functions. — *end note*]
22