C++/Library
2021. 3. 12. 17:33
assert
<cassert>
라이브러리
assert
Debug 모드에서만 런타임에 작동한다.
VS의 전처리기 설정에 매크로가 설정되어있다.
Debug 모드에서는
_DEBUG
Release 모드에서는
NDEBUG
내부 조건이 거짓이면
Debug Error
를 발생시킨다.#include <cassert> int main() { assert(false); }
최대한 나눠서 쓰는게 디버깅하기에 좋다.
static assert
컴파일 타임에 작동한다.
Release 모드에서도 작동한다.
에러 문구를 넣어야 한다.
#include <cassert> int main() { const int x = 5; //const int x = 4; // 컴파일 안됨 static_assert(x == 5, "x should be 5"); }
릴리즈 모드에선 작동되지 않는다면, 차라리 예외처리를 전부 하는게 맞는 것 아닌가 생각했다.
관련 참고 내용
'C++ > Library' 카테고리의 다른 글
C++ initializer_list (0) | 2021.03.19 |
---|---|
C++ chrono (0) | 2021.03.16 |
C++ vector (0) | 2021.03.12 |
C++ tuple (0) | 2021.03.12 |
C++ array (0) | 2021.03.11 |