static_assert
From cppreference.net
|
定義済みヘッダー
<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
|