【发布时间】:2012-07-13 20:19:11
【问题描述】:
可能重复:
Why is it an error to use an empty set of brackets to call a constructor with no arguments?
我看过C++ FQAentries关于嵌套构造函数调用和支撑的内容,并且一直想知道 C++ 解析器如何解析两个以及为什么解析器无法解析它。
所以我明白为什么foo xxx(); 是模棱两可的。但是是什么让foo x(bar()); 模棱两可,因为它显然不是前向声明。 (即:应该有一个可以成功检测到这一点的语法)。
有人能解释一下 C++ 语法那部分的限制和歧义吗?
【问题讨论】:
-
google“最麻烦的解析”
-
您链接的常见问题解答条目解释了这一点。倒数第三段。
-
这些是大括号:
{}。这些是括号:().
标签: c++ compiler-theory most-vexing-parse