C++标准是否允许extern
静态数据成员和成员函数定义上的关键字(假设链接匹配)?例如:
struct A
{
static int a; // external linkage
void f(); // external linkage
};
extern int A::a;
extern void A::f() {}
The extern
不允许关键字作为类成员的存储类说明符。来自[dcl.stc]/5:
[...] 这extern
说明符不能用在类成员或函数参数的声明中。 [...]
此外,定义也是声明,参见。 [基本.def]/2:
声明是一个定义除非[规则]。
因此,extern
不允许在任何形式的类成员声明上使用关键字作为存储类说明符,无论是在作为类定义一部分的第一个声明上,还是在作为外联成员定义一部分的后续声明上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)