我在"最令人烦恼的解析中所看到的所有讨论"谈谈如何强制编译器将case作为带有初始化器的变量声明处理(而不是将实际解释作为函数声明)。例如,请参阅this stackoverflow thread和this article from Ask-Coder。
我的团队有一条规则:强制尽可能多的警告是错误。目标是防止悄悄进入代码;成功的编译应该是沉默的,禁用警告是一种灾难。这一切都非常好,除了我被一个声明实际解析我希望它解析的声明的最烦恼的解析所咬伤。
具体做法是:
int some_function();
如Ask-Coder的文章所示,这段代码片段确实会在clang中触发Most Vexing Parse警告,然后我们将其转换为错误,这会让我感到厌恶。
我在这里的语法中能做些什么来使这个(a)成为合法的C声明(不仅仅是C ++)和(b)不会出现最令人烦恼的解析警告?或者我是否必须围绕这行代码进行#pragma舞蹈并使警告静音?
答案 0 :(得分:2)
可能就像
一样简单int some_function(void);