14.4.2.1 Applicable function member
来源:互联网 发布:mac操作说明 完全指南 编辑:程序博客网 时间:2024/05/18 14:12
A function member is said to be an applicable function member with respect
to an argument list A when all
of the following are true:
?The number of arguments in A is identical to the number of parameters in
the function member
declaration.
?For each argument in A, the parameter passing mode of the argument (i.e.,
value, ref, or out) is
identical to the parameter passing mode of the corresponding parameter, and
Chapter 14 Expressions
135
for a value parameter or a parameter array, an implicit conversion (?3.1)
exists from the type of the
argument to the type of the corresponding parameter, or
for a ref or out parameter, the type of the argument is identical to the
type of the corresponding parameter.
[Note: After all, a ref or out parameter is an alias for the argument
passed. end note]
For a function member that includes a parameter array, if the function
member is applicable by the above
rules, it is said to be applicable in its normal form. If a function member
that includes a parameter array is
not applicable in its normal form, the function member may instead be
applicable in its expanded form:
?The expanded form is constructed by replacing the parameter array in the
function member declaration
with zero or more value parameters of the element type of the parameter
array such that the number of
arguments in the argument list A matches the total number of parameters. If
A has fewer arguments than
the number of fixed parameters in the function member declaration, the
expanded form of the function
member cannot be constructed and is thus not applicable.
?If the class, struct, or interface in which the function member is
declared already contains another
applicable function member with the same signature as the expanded form,
the expanded form is not
applicable.
?Otherwise, the expanded form is applicable if for each argument in A the
parameter passing mode of the
argument is identical to the parameter passing mode of the corresponding
parameter, and
for a fixed value parameter or a value parameter created by the expansion,
an implicit conversion (?3.1)
exists from the type of the argument to the type of the corresponding
parameter, or
for a ref or out parameter, the type of the argument is identical to the
type of the corresponding parameter.
to an argument list A when all
of the following are true:
?The number of arguments in A is identical to the number of parameters in
the function member
declaration.
?For each argument in A, the parameter passing mode of the argument (i.e.,
value, ref, or out) is
identical to the parameter passing mode of the corresponding parameter, and
Chapter 14 Expressions
135
for a value parameter or a parameter array, an implicit conversion (?3.1)
exists from the type of the
argument to the type of the corresponding parameter, or
for a ref or out parameter, the type of the argument is identical to the
type of the corresponding parameter.
[Note: After all, a ref or out parameter is an alias for the argument
passed. end note]
For a function member that includes a parameter array, if the function
member is applicable by the above
rules, it is said to be applicable in its normal form. If a function member
that includes a parameter array is
not applicable in its normal form, the function member may instead be
applicable in its expanded form:
?The expanded form is constructed by replacing the parameter array in the
function member declaration
with zero or more value parameters of the element type of the parameter
array such that the number of
arguments in the argument list A matches the total number of parameters. If
A has fewer arguments than
the number of fixed parameters in the function member declaration, the
expanded form of the function
member cannot be constructed and is thus not applicable.
?If the class, struct, or interface in which the function member is
declared already contains another
applicable function member with the same signature as the expanded form,
the expanded form is not
applicable.
?Otherwise, the expanded form is applicable if for each argument in A the
parameter passing mode of the
argument is identical to the parameter passing mode of the corresponding
parameter, and
for a fixed value parameter or a value parameter created by the expansion,
an implicit conversion (?3.1)
exists from the type of the argument to the type of the corresponding
parameter, or
for a ref or out parameter, the type of the argument is identical to the
type of the corresponding parameter.
- 14.4.2.1 Applicable function member
- 14.4.2.2 Better function member
- 14.4.3 Function member invocation
- Function语义学之member function
- const member function不明白
- win32gui Member Function
- C++ virtual member function
- Const Member Function(C++)
- member function pointer
- [MFC] CString member function
- Member function callback
- C++ member function pointer
- C++ virtual member function FAQ
- C++ virtual member function FAQ
- 指向Member Function 的指针
- Member Function的调用方式
- static member variable and static member function in a class
- const member function can return non-const type member vars
- 我把我的声音说给相通的灵魂听,有往事的缺口,有幻想的抚摸,有诺言的甜美,有失望的伤痕,夜已经深了,在蓝色的月光下,我不在乎那些与我擦肩而过的人群用异样的目光看着我灵魂的独舞。
- 樱花未开(更新完毕)
- 14.4 Function members
- 14.4.1 Argument lists
- 14.4.2 Overload resolution
- 14.4.2.1 Applicable function member
- 14.4.2.2 Better function member
- 14.4.2.3 Better conversion
- 14.4.3 Function member invocation
- 14.4.3.1 Invocations on boxed instances
- 14.5 Primary expressions
- 14.5.1 Literals
- 14.5.2 Simple names
- 14.5.3 Parenthesized expressions