当前位置:  开发笔记 > 编程语言 > 正文

在C++ 11中弃用静态类成员

如何解决《在C++11中弃用静态类成员》经验,为你挑选了1个好方法。

我遇到了不同的宏,它们允许弃用成员属性和函数,但没有一个讨论弃用静态类成员的可能性.

我读到即使在C++ 14中也不允许弃用静态成员.

这有什么具体原因吗?



1> Drax..:

让我们得到一些事实:

[[deprecated]]属性的措辞如下(基于N4269 7.6.5 [dcl.attr.deprecated],强调我的):

    该属性可以应用于类的声明,typedef-name,变量,非静态数据成员,函数,命名空间,枚举,枚举器或模板特化.

误导性部分是"非静态数据成员"的明确外观,而没有该列表中同一级别的对应部分,但在同一列表中还有另外两个感兴趣的元素.

a的描述variable是(基于3 [基本]):

    通过声明除非静态数据成员或对象之外的引用引入变量.变量的名称(如果有)表示引用或对象.

这意味着a variable包括静态数据成员

A static member function是一个function(红色汽车是一辆汽车,这是一个合乎逻辑的结论,我似乎没有找到任何计数器在标准中指出这一点).

没有任何语法或行为问题特别适用于静态成员,静态函数几乎是命名空间中的自由函数,静态数据成员或多或少是命名空间中的全局变量,您可以弃用自由函数和全局变量..

作为奖励,它实际上适用于主要编译器.


总结所有这些事实基本上意味着该[[deprecated]]属性实际上可以应用于静态数据成员,非静态数据成员和静态成员函数等.

所以为了回答你的问题,根据我的理解,标准实际上允许弃用静态成员.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有