【发布时间】:2018-02-17 06:13:05
【问题描述】:
为什么会这样
auto f = std::string();
f = "src.Id";
但这不是
std::string f();
f = "src.Id";
【问题讨论】:
-
在 C++ 中查找“最令人头疼的解析”。
-
我希望人们不要把这个简单的案例称为最令人头疼的解析。这是最烦人的解析en.wikipedia.org/wiki/Most_vexing_parse。
-
可以说,您目前遇到的任何令人头疼的解析都是最令人头疼的解析。 :)
-
如果您使用较新的语法
std::string f{};,它不会将f视为返回std::string的函数的声明。 -
@john:也许你应该纠正 Scott Meyers(这个词的发明者)——参见他的评论 “Widget w3(); // 最令人头疼的解析!声明一个函数!”here。仅仅因为 WIkipedia 仅列出了一个更复杂的示例,并不意味着该术语也不涵盖更简单的示例。
标签: c++