【发布时间】:2018-09-30 20:36:00
【问题描述】:
我正在研究最令人烦恼的解析,我偶然发现了这样的事情:
Foo bar(Baz()); // bar is a function that takes a pointer to a function that returns a Baz and returns a Foo
这与return-type(*name)(parameters) 的典型语法完全不同。括号是参数列表的括号,还是名称?
【问题讨论】:
-
哦,我的 C++,语法有时会令人困惑。如果
Baz是一个没有参数且返回Foo的函数,则将bar声明为Foo类型的变量,初始化为Baz()。但是如果Baz是一个type 那么bar被声明为一个函数?!疯了…… -
@RayToal 对自我推销感到抱歉,但您可能会喜欢 this parsing abuse 我去年整理的 ;)
-
感谢自我推销!
标签: c++