已弃用和弃用(原因)

Version >= C++ 14

C++ 14 引入了一种通过属性来弃用函数的标准方法。[[deprecated]] 可用于指示函数已弃用。[[deprecated("reason")]] 允许添加可由编译器显示的特定原因。

void function(std::unique_ptr<A> &&a);

// Provides specific message which helps other programmers fixing there code
[[deprecated("Use the variant with unique_ptr instead, this function will be removed in the next release")]]
void function(std::auto_ptr<A> a);

// No message, will result in generic warning if called.
[[deprecated]]
void function(A *a);

此属性可应用于:

  • 一个类的声明
  • 一个 typedef 名称
  • 一个变量
  • 非静态数据成员
  • 一个功能
  • 枚举
  • 模板专业化

(参考 c ++ 14 标准草案 :7.6.5 不推荐使用的属性)