c++ 'inline;'是无效声明还是根本不是声明?

kmbjn2e3  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(101)

假设我想知道什么是声明,我转到dcl.pre(http://eel.is/c++draft/dcl.pre)并读取
声明的形式为
后跟各种可能的形式,其中之一是 simple-declaration,而后者又可以具有 *decl-specifier-seq init-declarator-list的形式假定后一部分是可选的,我假设 simple-declaration 可以具有 *decl-specifier-seqx 1 m1n1x * 的形式。我最终理解了 decl-specifier-seq 可以具有单个 decl-specifier 的形式;最后这可以仅仅是inline
如果上面的推理是正确的,那么我就可以得出结论,一行只包含inline;的代码是一个声明,但显然它甚至是不可编译的。
这意味着什么?inline; * 是 * 一个声明,但却是一个无效的声明?我应该从文本中理解这一点?否则呢?

wqnecbli

wqnecbli1#

很多东西符合语法,但都是无稽之谈:

int int int i;
1+1+=1;
void(1,2);
*1;
int &*pr;
(1+...);
void f(consteval int);
inline struct S {};
++main;

对这些奇怪现象的正确React是不要担心它们柏拉图式的是什么;正确的回答是

相关问题