我在哪里可以找到有关C++ [[deprecated]]属性的信息

Chr*_*oph 6 c++ c++11 c++14

我收到了一个描述C++ 11属性的链接[[deprecated]].这听起来非常方便,我想了解更多相关信息 - 编译器支持它,完整的文档等等.

我花了20分钟左右的谷歌搜索,但除了链接的网站,我无法在任何地方找到这个信息.部分地,由于与C++ 11相关的"弃用"一词的其他用法以及搜索引擎无法识别,这很复杂[[.我也没有在各种SO答案中与草案标准中找到这一点.我无权使用完整的付费标准.

有没有人有关于这个[[deprecated]]属性的更多信息?

PS:如果你很好奇,我会用它作为/sf/answers/20666061/的更好的替代品

Jos*_*eld 12

[[deprecated]]属性已进入C++ 14草案(参见2013年10月草案的第7.6.5节[dcl.attr.deprecated] ).

属性令牌 deprecated可以用来标记的名称和它的使用仍然是允许的实体,但不鼓励出于某种原因.

例如,foo不推荐使用以下函数:

[[deprecated]]
void foo(int);
Run Code Online (Sandbox Code Playgroud)

可以提供描述不推荐使用名称或实体的原因的消息:

[[deprecated("Replaced by bar, which has an improved interface")]]
void foo(int);
Run Code Online (Sandbox Code Playgroud)

消息必须是字符串文字.


Nic*_*las 7

首先,事情[[]]不是关键词; 他们是属性.

其次,没有[[deprecated]]C++ 11标准定义的属性.您所指的链接是错误的还是指的是实现此属性的特定编译器(可能是C++ Builder?).

属性(通常)是特定于编译器的.像#pragmas 一样,编译器应该忽略它们不支持的任何属性.