已棄用和棄用(原因)
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 不推薦使用的屬性)