deprecated
pragma
함수 deprecated
pragma , 형식 또는 기타 식별자가 이후 릴리스에서 더 이상 지원되지 않거나 더 이상 사용되지 않아야 함을 나타낼 수 있습니다.
참고 항목
C++14 [[deprecated]]
특성에 대한 정보와 Microsoft __declspec(deprecated)
한정자 또는 deprecated
pragma해당 특성 대신 해당 특성을 사용하는 시기에 대한 지침은 C++의 특성을 참조하세요.
구문
#pragma deprecated(
identifier1 [,
identifier2 ... ])
설명
컴파일러에서 지정 deprecated
pragma한 식별자를 발견하면 컴파일러 경고 C4995가 발생합니다.
매크로 이름을 사용하지 않을 수 있습니다. 매크로 이름을 따옴표로 묶지 않으면 매크로 확장이 발생합니다.
deprecated
pragma 일치하는 모든 식별자에서 작동하며 서명을 고려하지 않으므로 오버로드된 함수의 특정 버전을 더 이상 사용하지 않는 것이 가장 좋은 옵션은 아닙니다. 범위로 가져온 일치하는 함수 이름은 경고를 트리거합니다.
가능한 경우 C++14 [[deprecated]]
특성 대신 deprecated
pragma사용하는 것이 좋습니다. Microsoft 관련 __declspec(deprecated)
선언 한정자는 많은 경우보다 deprecated
pragma더 나은 선택입니다. [[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
}