让我们得到一些事实:
该[[deprecated]]属性的措辞如下(基于N4269 7.6.5 [dcl.attr.deprecated],强调我的):
- 该属性可以应用于类的声明,typedef-name,变量,非静态数据成员,函数,命名空间,枚举,枚举器或模板特化.
误导性部分是"非静态数据成员"的明确外观,而没有该列表中同一级别的对应部分,但在同一列表中还有另外两个感兴趣的元素.
variable是(基于3 [基本]):
- 通过声明除非静态数据成员或对象之外的引用引入变量.变量的名称(如果有)表示引用或对象.
这意味着a variable包括静态数据成员
A static member function是一个function(红色汽车是一辆汽车,这是一个合乎逻辑的结论,我似乎没有找到任何计数器在标准中指出这一点).
没有任何语法或行为问题特别适用于静态成员,静态函数几乎是命名空间中的自由函数,静态数据成员或多或少是命名空间中的全局变量,您可以弃用自由函数和全局变量..
作为奖励,它实际上适用于主要编译器.
总结所有这些事实基本上意味着该[[deprecated]]属性实际上可以应用于静态数据成员,非静态数据成员和静态成员函数等.
所以为了回答你的问题,根据我的理解,标准实际上允许弃用静态成员.
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |