여러 개발자가 협업하거나 library 등을 통해 api를 배포하는 개발자라면 더 이상 지원하지 않는 함수에 대하여 경고 메세지를 보내고 싶을 때가 있다.
이 때 더 이상 사용하지 않거나 유지보수되지 않는 함수의 선언부에 아래와 같이 [[deprecated]]
Attributes (C++14부터)를 적용하면 컴파일 시 경고 메세지를 출력한다. (빌드는 그대로 됨).
[[deprecated("use B() instead")]]
void A();
warning: `void A()` is deprecated: use B() instead [-Wdeprecated-declarations]
A();
^
원형은 아래와 같고 deprecated 뒤에 경고 메세지를 작성할 수 있어 다른 함수를 사용하라고 경고할 수 있다.
[[deprecated]] (1)
[[deprecated( string-literal )]] (2)
deprecated 는 C++11부터 사용되는 [[attrubutes]]
기능 중의 하나이며 컴파일 시에 경고나 힌트를 주기 위한 도구이다. 다른 항목들에 대하여는 (https://en.cppreference.com/w/cpp/language/attributes)[cppreference] 를 참고하자. 여러 속성들이 있지만 주로 사용하는건 deprecated이다