【发布时间】:2018-04-09 07:39:17
【问题描述】:
我想知道为什么void() 是void 的prvalue 但void{} 不存在...?请参阅以下答案:https://stackoverflow.com/a/37708167/293195
例如在上下文中:
template<typename R>
R foo(){
return R{};
}
【问题讨论】:
-
Obligatory。在这里的答案中很难知道你在寻找什么。因为P0146 没有被批准?或者因为当添加了大括号初始化时,没有人考虑过
void... 或者从那以后在乎。还是……? -
@Barry:有大量语言设计的“为什么”问题可以客观地正确回答。当有人提出问题时,他们不知道答案会是“天知道为什么”,或者“这是因为”。只是一个例子,这是一个“为什么”的问题,有一个正确的答案:stackoverflow.com/questions/8911696/if-condition-with-nullable。由撰写“强制性”答案的同一个人撰写。甚至,“天知道为什么”比不回答更好。这样,至少,我们知道,某事没有特别的原因(所以这不是设计决定)。
-
@geza 您是否建议这是可以以客观方式正确回答的语言设计“为什么”问题之一?如果您不建议这样做,那么我不明白评论的重点。我只是说我不知道如何回答这个问题,因为我不相信有一个有意义的、客观的答案。
-
@Barry:好吧,也许我误解了你的意图。