프로그래밍 일반 2014. 4. 14. 16:39

C++ 11 컴파일 타임 assertion ( static_assert )

웹 컴파일러 링크 : http://melpon.org/wandbox/


컴파일 타임 assertion 은 상수식과 문자열 리터럴로 구성되어 있다.


static_assert(constant-expression, string literal);


컴파일러는 식을 계산한 다음 expression 이 거짓이라면 오류 메시지에 string 을 적는다.


static_assert 는 컴파일시에 처리되기 때문에 런타임에 의존하는 값들을 확인할 때는 사용할 수 없다.


int Func(int* p, int n) 

{

static_assert( NULL != p, "p is not null");  // 오류

}