다음을 통해 공유


deprecated pragma

함수 deprecatedpragma , 형식 또는 기타 식별자가 이후 릴리스에서 더 이상 지원되지 않거나 더 이상 사용되지 않아야 함을 나타낼 수 있습니다.

참고 항목

C++14 [[deprecated]] 특성에 대한 정보와 Microsoft __declspec(deprecated) 한정자 또는 deprecatedpragma해당 특성 대신 해당 특성을 사용하는 시기에 대한 지침은 C++의 특성을 참조하세요.

구문

#pragma deprecated(identifier1 [ , identifier2 ... ])

설명

컴파일러에서 지정 deprecatedpragma한 식별자를 발견하면 컴파일러 경고 C4995가 발생합니다.

매크로 이름을 사용하지 않을 수 있습니다. 매크로 이름을 따옴표로 묶지 않으면 매크로 확장이 발생합니다.

deprecatedpragma 일치하는 모든 식별자에서 작동하며 서명을 고려하지 않으므로 오버로드된 함수의 특정 버전을 더 이상 사용하지 않는 것이 가장 좋은 옵션은 아닙니다. 범위로 가져온 일치하는 함수 이름은 경고를 트리거합니다.

가능한 경우 C++14 [[deprecated]] 특성 대신 deprecatedpragma사용하는 것이 좋습니다. Microsoft 관련 __declspec(deprecated) 선언 한정자는 많은 경우보다 deprecatedpragma더 나은 선택입니다. [[deprecated]] 특성 및 __declspec(deprecated) 한정자를 사용하면 오버로드된 특정 형식의 함수에 대해 사용되지 않는 상태를 지정할 수 있습니다. 진단 경고는 특성 또는 한정자가 적용되는 특정 오버로드된 함수에 대한 참조에만 표시됩니다.

예시

// pragma_directive_deprecated.cpp
// compile with: /W3
#include <stdio.h>
void func1(void) {
}

void func2(void) {
}

int main() {
   func1();
   func2();
   #pragma deprecated(func1, func2)
   func1();   // C4995
   func2();   // C4995
}

다음 샘플에서는 클래스를 사용하지 않는 방법을 보여 줍니다.

// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X {  // C4995
public:
   void f(){}
};

int main() {
   X x;   // C4995
}

참고 항목

Pragma 지시문 및 __pragma _Pragma 키워드