繁体   English   中英

C ++标准歧义

[英]C++ standard ambiguity

据我在标准中看到的,以下代码有效。 它在MSVC1025中编译。

const struct omg;
struct omg volatile;

int main()
{
    return 0;
}

在这些声明中,限定符constvolatile似乎是没有目的的。 它们既无助于编译器和程序员,也无济于事。

该标准似乎并不打算消除这些“空的模棱两可”。 在空申报的情况下; ,这是明确允许的。

在预处理之后,是否还有其他令牌的情况与表达式的含义无关?

clanggcc都使用-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM