考虑以下C++11代码:
struct C {};
void f(int(C));
f
的类型是否与以下相同:
typedef int T(C);
void f(T);
或者是这样的吗:
void f(int C);
也就是说,(C)
应该被解释为参数名 C
的 declarator
,还是函数参数的 abstract-declarator
?
这在标准中的哪里规定了?
考虑以下C++11代码:
struct C {};
void f(int(C));
f
的类型是否与以下相同:
typedef int T(C);
void f(T);
void f(int C);
也就是说,(C)
应该被解释为参数名 C
的 declarator
,还是函数参数的 abstract-declarator
?
这在标准中的哪里规定了?
int(*)(C)
,就像您在第一个可能的解释中所示。
void f(int(*)(C))
- 你好,MVP! :) - Xeo