Namespaces
Variants

static_assert

From cppreference.net
< c ‎ | error
헤더 파일에 정의됨 <assert.h>
#define static_assert _Static_assert
(C11부터)
(C23에서 제거됨)

이 편의성 매크로는 키워드 _Static_assert 로 확장됩니다.

목차

예제

#include <assert.h>
int main(void)
{
    static_assert(2 + 2 == 4, "2+2 isn't 4");   // 올바른 형식
    static_assert(sizeof(int) < sizeof(char),   // 컴파일 타임 오류
                  "this program requires that int is less than char");
}

참고 사항

C23 이후로, static_assert 는 그 자체로 키워드이며, 사전 정의된 매크로일 수도 있으므로 <assert.h> 는 더 이상 이를 제공하지 않습니다.

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.2/3 진단 <assert.h> (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.2/3 진단 <assert.h> (p: 135)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.2/3 진단 <assert.h> (p: 186)

참고 항목

C++ 문서 for Static Assertion