名前空間
変種
操作

static_assert

From cppreference.com
< c‎ | エラー
ヘッダー <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");   // well-formed
 
    static_assert(sizeof(int) < sizeof(char),   // compile-time error
                  "this program requires that int is less than char");
}

[編集]

C23 以降、static_assert 自体がキーワードとなり、プリディファインドマクロにもなり得るため、<assert.h> はこれをもう提供しません。

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.2/3 Diagnostics <assert.h> (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.2/3 Diagnostics <assert.h> (p: 135)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.2/3 Diagnostics <assert.h> (p: 186)

[編集] 関連項目

C++ ドキュメント (静的アサーション)
English 日本語 中文(简体) 中文(繁體)