已弃用 (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++ 关键字