tmp/tmpbae62ehe/{from.md → to.md}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
##### Call to object of class type <a id="over.call.object">[[over.call.object]]</a>
|
| 2 |
|
| 3 |
If the *postfix-expression* `E` in the function call syntax evaluates to
|
| 4 |
a class object of type “cv `T`”, then the set of candidate functions
|
| 5 |
includes at least the function call operators of `T`. The function call
|
| 6 |
-
operators of `T` are
|
| 7 |
-
|
| 8 |
|
| 9 |
In addition, for each non-explicit conversion function declared in `T`
|
| 10 |
of the form
|
| 11 |
|
| 12 |
``` bnf
|
|
@@ -28,27 +28,23 @@ returning `R`”, a *surrogate call function* with the unique name
|
|
| 28 |
|
| 29 |
is also considered as a candidate function. Similarly, surrogate call
|
| 30 |
functions are added to the set of candidate functions for each
|
| 31 |
non-explicit conversion function declared in a base class of `T`
|
| 32 |
provided the function is not hidden within `T` by another intervening
|
| 33 |
-
declaration.[^
|
| 34 |
|
| 35 |
The argument list submitted to overload resolution consists of the
|
| 36 |
argument expressions present in the function call syntax preceded by the
|
| 37 |
implied object argument `(E)`.
|
| 38 |
|
| 39 |
-
[*Note
|
| 40 |
-
the implied object argument is compared against the
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
conversion function from which the surrogate call function was derived
|
| 45 |
-
will be used in the conversion sequence for that parameter since it
|
| 46 |
-
converts the implied object argument to the appropriate function pointer
|
| 47 |
-
or reference required by that first parameter. — *end note*]
|
| 48 |
|
| 49 |
-
[*Example
|
| 50 |
|
| 51 |
``` cpp
|
| 52 |
int f1(int);
|
| 53 |
int f2(float);
|
| 54 |
typedef int (*fp1)(int);
|
|
|
|
| 1 |
##### Call to object of class type <a id="over.call.object">[[over.call.object]]</a>
|
| 2 |
|
| 3 |
If the *postfix-expression* `E` in the function call syntax evaluates to
|
| 4 |
a class object of type “cv `T`”, then the set of candidate functions
|
| 5 |
includes at least the function call operators of `T`. The function call
|
| 6 |
+
operators of `T` are the results of a search for the name `operator()`
|
| 7 |
+
in the scope of `T`.
|
| 8 |
|
| 9 |
In addition, for each non-explicit conversion function declared in `T`
|
| 10 |
of the form
|
| 11 |
|
| 12 |
``` bnf
|
|
|
|
| 28 |
|
| 29 |
is also considered as a candidate function. Similarly, surrogate call
|
| 30 |
functions are added to the set of candidate functions for each
|
| 31 |
non-explicit conversion function declared in a base class of `T`
|
| 32 |
provided the function is not hidden within `T` by another intervening
|
| 33 |
+
declaration.[^4]
|
| 34 |
|
| 35 |
The argument list submitted to overload resolution consists of the
|
| 36 |
argument expressions present in the function call syntax preceded by the
|
| 37 |
implied object argument `(E)`.
|
| 38 |
|
| 39 |
+
[*Note 3*: When comparing the call against the function call operators,
|
| 40 |
+
the implied object argument is compared against the object parameter of
|
| 41 |
+
the function call operator. When comparing the call against a surrogate
|
| 42 |
+
call function, the implied object argument is compared against the first
|
| 43 |
+
parameter of the surrogate call function. — *end note*]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
+
[*Example 2*:
|
| 46 |
|
| 47 |
``` cpp
|
| 48 |
int f1(int);
|
| 49 |
int f2(float);
|
| 50 |
typedef int (*fp1)(int);
|