[英]C++ standard ambiguity
据我在标准中看到的,以下代码有效。 它在MSVC1025中编译。
const struct omg;
struct omg volatile;
int main()
{
return 0;
}
在这些声明中,限定符const
和volatile
似乎是没有目的的。 它们既无助于编译器和程序员,也无济于事。
该标准似乎并不打算消除这些“空的模棱两可”。 在空申报的情况下;
,这是明确允许的。
在预处理之后,是否还有其他令牌的情况与表达式的含义无关?
clang和gcc都使用-pedantic-errors
拒绝此代码。 clang提供以下错误:
error: 'const' is not permitted on a declaration of a type [-Werror,-Wmissing-declarations]
const struct omg;
^
error: 'volatile' is not permitted on a declaration of a type [-Werror,-Wmissing-declarations]
C ++标准草案7.1.6.1的cv限定词[dcl.type.cv]说:
[...]如果cv限定词出现在decl-specifier-seq中,则声明的init-declarator-list不得为空。[...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.