非推奨 (C++)deprecated (C++)

このトピックでは、Microsoft 固有について declspec 宣言を非推奨とされます。This topic is about the Microsoft-specific deprecated declspec declaration. C++ 14 について[[deprecated]]属性、および Microsoft 固有の declspec またはプラグマとその属性を使用するタイミングに関するガイダンスを参照してください。 C++ の標準属性します。For information about the C++14 [[deprecated]] attribute, and guidance on when to use that attribute vs. the Microsoft-specific declspec or pragma, see C++ Standard Attributes.

例外については、下、非推奨とされます宣言と同じ機能を提供する、非推奨とされますプラグマ。With the exceptions noted below, the deprecated declaration offers the same functionality as the deprecated pragma:

  • 非推奨とされます宣言により、非推奨として特定の形式の関数のオーバー ロードを指定する一方、プラグマ形式はすべてのオーバー ロードされた関数名に適用されます。The deprecated declaration lets you specify particular forms of function overloads as deprecated, whereas the pragma form applies to all overloaded forms of a function name.

  • 非推奨とされます宣言では、コンパイル時に表示されるメッセージを指定することができます。The deprecated declaration lets you specify a message that will display at compile time. このメッセージのテキストをマクロから取り込むことができます。The text of the message can be from a macro.

  • マクロは非推奨とされたとしてマークされているのみ、非推奨とされますプラグマ。Macros can only be marked as deprecated with the deprecated pragma.

コンパイラが非推奨の識別子または標準の使用を検出するかどうかは [[deprecated]] 属性、 C4996警告がスローされます。If the compiler encounters the use of a deprecated identifier or the standard [[deprecated]] attribute, a C4996 warning is thrown.

Example

次の例では、関数を非推奨としてマークする方法、および非推奨の関数が使用されている場合、コンパイル時に表示されるメッセージを指定する方法を示します。The following sample shows how to mark functions as deprecated, and how to specify a message that will be displayed at compile time, when the deprecated function is used.

// 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
}

Example

次の例では、クラスを非推奨としてマークする方法、および非推奨のクラスが使用されている場合、コンパイル時に表示されるメッセージを指定する方法を示します。The following sample shows how to mark classes as deprecated, and how to specify a message that will be displayed at compile time, when the deprecated class is used.

// 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
}

関連項目See also

__declspec__declspec
キーワードKeywords