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