【发布时间】:2015-10-21 15:43:05
【问题描述】:
据我在标准中看到的,以下代码是有效的。它在 MSVC1025 中编译。
const struct omg;
struct omg volatile;
int main()
{
return 0;
}
在这些声明中,限定词 const 和 volatile 似乎毫无意义。它们既不会帮助也不会伤害编译器和程序员。
该标准似乎并不打算清除这些“空洞的歧义”。对于空声明;,它是明确允许的。
是否存在其他经过预处理后与表达式含义无关的标记情况?
【问题讨论】:
-
我不会认为 MSVC 是标准允许或要求的可靠仲裁者。而且我倾向于怀疑情况会在 11025 年发生变化 :-)
-
在标准中哪里可以找到与“只能为对象和函数指定限定符?这是 g++ 错误消息。
-
"after preprocessing" 并不意味着您的问题似乎暗示了什么。 After preprocessing 意味着:当预处理器完成时。
标签: c++ language-lawyer