次の方法で共有


deprecated (C++)

(Microsoft 固有の仕様) 次の例外を除き、deprecated 宣言は deprecated プラグマと同じように機能します。

  • deprecated 宣言では、特定の形式の関数オーバーロードを非推奨として指定できます。一方、プラグマ形式は、オーバーロードされたすべての関数名に適用されます。

  • deprecated 宣言では、コンパイル時に表示されるメッセージを指定できます。 このメッセージのテキストをマクロから取り込むことができます。

  • マクロは、deprecated プラグマでのみ非推奨としてマークできます。

コンパイラが非推奨の識別子を検出すると、C4996 警告がスローされます。

使用例

次の例では、関数を非推奨としてマークする方法、および非推奨の関数が使用されている場合、コンパイル時に表示されるメッセージを指定する方法を示します。

// deprecated.cpp
// compile with: /W3
#define MY_TEXT "function is deprecated"
void func1(void) {}
__declspec(deprecated) void func1(int) {}
__declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
__declspec(deprecated(MY_TEXT)) void func3(int) {}

int main() {
   func1();
   func1(1);   // C4996
   func2(1);   // C4996
   func3(1);   // C4996
}

次の例では、クラスを非推奨としてマークする方法、および非推奨のクラスが使用されている場合、コンパイル時に表示されるメッセージを指定する方法を示します。

// deprecate_class.cpp
// compile with: /W3
struct __declspec(deprecated) X {
   void f(){}
};

struct __declspec(deprecated("** X2 is deprecated **")) X2 {
   void f(){}
};

int main() {
   X x;   // C4996
   X2 x2;   // C4996
}

参照

関連項目

__declspec

C++ キーワード