사용되지 않음 (C++)

이 항목에서는 더 이상 사용되지 않는 Microsoft 전용 declspec 선언에 대해 설명합니다. C++14 [[deprecated]] 특성에 대한 정보와 해당 특성을 사용하는 시기와 Microsoft 관련 declspec 또는 pragma에 대한 지침은 C++ 표준 특성을 참조하세요.

아래에 설명된 예외를 제외하고 선언은 deprecated 사용되지 않는 pragma와 동일한 기능을 제공합니다.

  • 선언을 deprecated 사용하면 특정 형식의 함수 오버로드를 더 이상 사용되지 않는 것으로 지정할 수 있지만 pragma 형식은 함수 이름의 모든 오버로드된 형식에 적용됩니다.

  • 선언을 deprecated 사용하면 컴파일 시간에 표시할 메시지를 지정할 수 있습니다. 메시지의 텍스트는 매크로에서 제공될 수 있습니다.

  • 매크로는 pragma로 더 이상 사용되지 deprecated 않는 것으로 표시될 수 있습니다.

컴파일러에서 사용되지 않는 식별자 또는 표준 [[deprecated]] 특성을 사용하는 경우 C4996 경고가 throw됩니다.

예제

다음 샘플에서는 함수를 사용되지 않는 것으로 표시하는 방법과 사용되지 않는 함수가 사용되는 경우 컴파일 타임에 표시될 메시지를 지정하는 방법을 보여 줍니다.

// 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
키워드