【发布时间】:2018-03-30 20:13:36
【问题描述】:
标准草案在 10.6.6 第 2 项中声明了 [[maybe_unused]]
“该属性可以应用于类、typedef-name、变量、非静态数据成员、函数、枚举或枚举器的声明。”
有什么理由排除静态数据成员吗?即
struct Foo {
[[maybe_unused]] static inline int foo = 0;
};
我问,因为我有一个静态数据成员,它的类型有一个重要的构造函数,它做有用的东西,但在其他方面没有使用。
【问题讨论】:
-
有趣的是,"a variable" 也可以是静态存储持续时间。好问题!
-
是否有编译器实际上拒绝/忽略静态数据成员的属性?我假设
foo有资格作为一个变量。 -
我不认为标准使用“变量”来包含静态数据成员,而不是静态持续时间变量。不确定编译器做了什么。我的问题更多是关于标准规定他们应该做什么才能合规。我知道编译器应该忽略它无法识别的属性,但我不确定以不合规方式使用的已知属性。