已棄用和棄用(原因)

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 不推薦使用的屬性)