C, C++, C#/C++ 공부
[C++11] static_assert
밥보92
2018. 5. 30. 11:39
반응형
# assertion
run time에 true-false를 판단하여 그 결과가 false인 경우 예외 처리를 하기 위해 사용됨
-> 프로그램이 실행중에 예외 감지를 위해 사용
# static_assert
compile time에 assertion을 수행할 수 있도록 제공되는 기능
보통은 type traits class에서 컴파일 타임에 템플릿 인자의 타입 특성을 확인하는데 사용됨
static_assert(bool_expr, message);
ex) static_assert(false, "not support");
컴파일 시 static_assert가 실패 했을때, message에 설정한 내용이 보여진다.
예시
#include <type_traits>
using namespace std;
template <typename T> void test (T p)
{
static_assert(function, "not support")
}
true 혹은 false를 반환 해주는 fuction이 어딘가 존재한다면 compile time에 에러 유무를 검출 하고,
에러가 발생하는 경우 메시지를 보여줄 것이다
반응형