这是此页面的复制粘贴: Is there a difference in C++ between copy initialization and direct initialization?
A c3(A());
[...]
第三个为函数c3创建一个函数声明 返回一个A,它接受一个函数指针指向一个函数重新生成 a A(阅读8.2)。
我认为以下是没有参数并返回A的函数指针的正确语法。
A c3(A(* pFunction)());
两种语法是否等效?
答案 0 :(得分:0)
是。在函数声明中,您可以省略参数名称。你甚至可以在定义中省略它们,但是你不能使用它们。这避免了"未使用的参数"例如警告GCC。
编辑正如OP指出的那样,我的论点不正确,因为我忽略了*
。将A()解释为函数指针的原因在于标准的8.2.7部分,其中这个模糊表达式被定义为表示函数的指针。