From Jason Turner

[over.over]

Diff to HTML by rtfpessoa

tmp/tmptoc567t5/{from.md → to.md} RENAMED
@@ -8,11 +8,11 @@ functions in such contexts. The function selected is the one whose type
8
  is identical to the function type of the target type required in the
9
  context. That is, the class of which the function is a member is ignored
10
  when matching a pointer-to-member-function type. The target can be
11
 
12
  - an object or reference being initialized ([[dcl.init]],
13
- [[dcl.init.ref]]),
14
  - the left side of an assignment ([[expr.ass]]),
15
  - a parameter of a function ([[expr.call]]),
16
  - a parameter of a user-defined operator ([[over.oper]]),
17
  - the return value of a function, operator function, or conversion (
18
  [[stmt.return]]),
@@ -44,16 +44,16 @@ non-static member function is selected, the reference to the overloaded
44
  function name is required to have the form of a pointer to member as
45
  described in  [[expr.unary.op]].
46
 
47
  If more than one function is selected, any function template
48
  specializations in the set are eliminated if the set also contains a
49
- non-template function, and any given function template specialization
50
- `F1` is eliminated if the set contains a second function template
51
- specialization whose function template is more specialized than the
52
- function template of `F1` according to the partial ordering rules of 
53
- [[temp.func.order]]. After such eliminations, if any, there shall remain
54
- exactly one selected function.
55
 
56
  ``` cpp
57
  int f(double);
58
  int f(int);
59
  int (*pfd)(double) = &f; // selects f(double)
 
8
  is identical to the function type of the target type required in the
9
  context. That is, the class of which the function is a member is ignored
10
  when matching a pointer-to-member-function type. The target can be
11
 
12
  - an object or reference being initialized ([[dcl.init]],
13
+ [[dcl.init.ref]], [[dcl.init.list]]),
14
  - the left side of an assignment ([[expr.ass]]),
15
  - a parameter of a function ([[expr.call]]),
16
  - a parameter of a user-defined operator ([[over.oper]]),
17
  - the return value of a function, operator function, or conversion (
18
  [[stmt.return]]),
 
44
  function name is required to have the form of a pointer to member as
45
  described in  [[expr.unary.op]].
46
 
47
  If more than one function is selected, any function template
48
  specializations in the set are eliminated if the set also contains a
49
+ function that is not a function template specialization, and any given
50
+ function template specialization `F1` is eliminated if the set contains
51
+ a second function template specialization whose function template is
52
+ more specialized than the function template of `F1` according to the
53
+ partial ordering rules of  [[temp.func.order]]. After such eliminations,
54
+ if any, there shall remain exactly one selected function.
55
 
56
  ``` cpp
57
  int f(double);
58
  int f(int);
59
  int (*pfd)(double) = &f; // selects f(double)