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