2009년 1월 28일 수요일

deprecated

라이브러리 버전 관리를 하다보면 더이상 필요되는 부분이 발생하거나 임시로 추가되는 부분이 생길수있는데 이러한 차후 삭제될 부분에 대한 표시가 필요하다
컴파일러에서 deprecated 키워드를 지원하지만 거의 사용하지 않았었는데(MS에서 C함수를 많이 고쳐놔서 기존소스에서 엄청난 경고가 뜨므로 꺼놓고 사용) 앞으로는 MS경고메세지도 잡고 사용하는게 좋을것 같다

두가지 사용예
#pragma deprecated(func1)
C4995 경고메세지가 뜬다. 단순히 선언되었음을 알리고 해당소스 컴파일시 메세지출력

__declspec(deprecated("this is a deprecated function"))
C4996 경고 메세지가 뜬다
다음에 오는 함수가 deprecated 되었음을 알리고 위에 메세지를 같이 표시해준다
함수를 실질적으로 사용할경우에 메세지가 출력된다. MS에서는 대부분 이렇게 사용되어있음

-----------
덧붙임.
* ms에서 만든 secure버전 함수 경고의 경우 _CRT_SECURE_NO_WARNINGS 을 선언해주면 발생되지않는다
* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 을 1 로 선언하면 자동으로 secure버전으로 변환해준다. 단 정적배열을 사용하는 경우에만 가능

댓글 없음: