[c++] deprecated 컴파일 경고 출력하기

달피·2021년 5월 17일
0

여러 개발자가 협업하거나 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이다


profile
개발 오답노트

0개의 댓글