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: 未定)
  • 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++ documentation for Static Assertion