C++ 属性:deprecated (C++14 起)
来自cppreference.com
< cpp | language | attributes
指示声明有此属性的名字或实体被弃用,即允许但因故不鼓励使用。
语法
[[deprecated ]]
|
(1) | ||||||||
[[deprecated( 字符字面量 )]]
|
(2) | ||||||||
字符字面量 | - | 能用于解释弃用的理由并/或提议代替用实体的文本 |
解释
指示允许使用声明有此属性的名称或实体,但因故不鼓励使用。编译器通常会对其使用情况发出警告。若指定了 字符字面量,则它通常被包含于警告中。
下列名字或实体的声明中允许使用这个属性:
- class/struct/union:struct [[deprecated]] S;,
- typedef 名,也包括别名声明:[[deprecated]] typedef S* PS;、using PS [[deprecated]] = S*;,
- 变量,包括静态数据成员:[[deprecated]] int x;,
- 非静态数据成员:union U { [[deprecated]] int n; };,
- 函数:[[deprecated]] void f();,
- 命名空间:namespace [[deprecated]] NS { int x; },
- 枚举:enum [[deprecated]] E {};,
- 枚举项:enum { A [[deprecated]], B [[deprecated]] = 42 };,
- 模板特化:template<> struct [[deprecated]] X<int> {};。
声明时未弃用的名字可被重声明为 deprecated
。声明为 deprecated
的名字不能通过重声明它而不带此属性变为未弃用。
示例
本节未完成 原因:暂无示例 |