Deprecated attribute
概要
以前よりC++の複数のコンパイラでは、独自機能として非推奨である事を記述する機能が提供されていた。 しかし、コンパイラの独自仕様で定義されたものであり、コンパイラごとに構文が異なっていた。 C++11にて、attributeが追加されたことで、 C++14で非推奨を明示する属性(attribute)が定義され、統一化された。
attribute listに対して、以下のどちらかを用いて指定する。
- deprecated
- deprecated("警告メッセージ")
この非推奨属性は、以下に示す宣言に対して指定可能である。
指定可能な宣言 | 指定例 |
---|---|
クラス | class [[deprecated]] X; |
typedef | typedef int [[deprecated]] X; |
変数 | int X [[deprecated]]; |
非staticメンバ変数 | class X { int x [[deprecated]]; }; |
関数/メンバ関数 | [[deprecated]] void func(); |
enum | enum [[deprecated]] E; enum class [[deprecated]] E; |
テンプレート特殊化 | template<> class [[deprecated]] X<int> {} |
また、deprecated指定無しで宣言のみされた名前は後でdeprecated付きで再宣言可能である。
void func();
[[deprecated]]
void func(); //OK
void func() {
}
int main() {
return 0;
}