C++新特性:deprecated关键字

对大多数程序员来说,代码陈旧是个大问题。这个新属性提供了解决这个问题的系统方法。

在C++14中,增加关键字:deprecated,主要用于管理过时的函数、接口、类等。

它的用法方便又简单—只需要把[[deprecated]]标签放到声明的前面即可—可以是类,变量,函数,或者其他一些实体的声明。结果看起来像这样:
class
[[ deprecated ]] flaky {
};

当程序中使用了过时的实体时,编译器的反应是把它留给开发人员。显然,大多数人会希望在需要时看到某种形式的警告,同时在不需要时也能够关掉警告。clang3.4中有一个例子,当实例化一个过时的类时给出了警告:
dep.cpp:14:3: warning: 'flaky' is deprecated [-Wdeprecated-declarations]
   flaky f;
  
dep.cpp:3:1: note: 'flaky' declared here
flaky {

你可能已经注意到,C++的attribute-tokens语法看起来似乎有点不常见。包含[[deprecated]]的属性列表,被放在class,enum等关键字之后,实体名之前。

这个标签具有包括消息参数的另一种形式。同样地,如何处理该消息取决于开发人员。显然,clang3.4直接忽略了该消息。因为,如下代码片段的输出中并不包含错误消息:

class
[[ deprecated ]] flaky {
};
 
[[ deprecated ( "Consider using something other than cranky" )]]
int cranky()
{
    return 0;
}
 
int main()
{
   flaky f;
   return cranky();
}


dep.cpp:14:10: warning: 'cranky' is deprecated [-Wdeprecated-declarations]
   return cranky();
          ^
dep.cpp:6:5: note: 'cranky' declared here
int cranky()


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值