From Jason Turner

[over.match.copy]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpaezy1fgx/{from.md → to.md} +10 -10
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 ([[class.conv.ctor]]) of `T` are
17
- candidate 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 to be bound to the first
21
- parameter of a constructor where the parameter is of type “reference
22
- to possibly cv-qualified `T`” and the constructor is called with a
23
  single argument in the context of direct-initialization of an object
24
- of type “*cv2* `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. Conversion functions that
28
- return “reference to `X`” return lvalues or xvalues, depending on the
29
- type of reference, of type `X` and are therefore considered to yield
30
- `X` for this 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
 
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