사용되지 않음 (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
}