This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft Edge More info about Internet Explorer and Microsoft Edge

This topic is about the Microsoft-specific deprecated declspec declaration. 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.

    If the compiler encounters the use of a deprecated identifier or the standard [[deprecated]] attribute, a C4996 warning is thrown.

    Examples

    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
    

    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
    Keywords

  •