0

我在“最令人烦恼的解析”中看到的所有讨论都在讨论如何强制编译器将 case 视为带有初始化程序的变量声明(而不是实际解释为函数声明)。例如,请参阅这个 stackoverflow 线程来自 Ask-Coder 的这篇文章

我的团队有一个规则:强制尽可能多的警告成为错误。目标是防止杂乱无章地进入代码;成功的编译应该是静默的,禁用警告是灾难的根源。这一切都非常好,除了我被最令人烦恼的解析所咬伤,声明实际上解析了我希望它解析的方式。

具体来说:

int some_function();

如 Ask-Coder 文章所示,这个代码片段确实触发了 clang 中的 Most Vexing Parse 警告,然后我们将其转换为错误,这让我大吃一惊。

我可以在此处的语法中做些什么来使(a)合法的 C 声明(不仅仅是 C++)和(b)不触发 Most Vexing Parse 警告吗?还是我必须跳#pragma dance 并在这行代码周围使警告静音?

4

1 回答 1

3

可以这么简单吗

int some_function(void);
于 2015-02-25T22:14:55.857 回答