static assert 宣言
提供: cppreference.com
目次 |
[編集] 構文
_Static_assert ( expression , message )
|
(C11以上) | ||||||||
_Static_assert ( expression )
|
(C2x以上) | ||||||||
expression | - | 任意の整数定数式 |
message | - | 任意の文字列リテラル |
このキーワードはヘッダ <assert.h>
で利用可能な便利マクロ static_assert としても利用可能です。
[編集] 説明
定数式がコンパイル時に評価され、ゼロと比較されます。 ゼロと等しければコンパイル時エラーが発生し、コンパイラは message (もしあれば) をエラーメッセージの一部として表示しなければなりません (ただし基本ソース文字集合外の文字を表示することは要求されません)。
そうでなく、 expression がゼロと等しくなければ、何も起きません。 コードは生成されません。
[編集] キーワード
[編集] 例
Run this code
#include <assert.h> int main(void) { // 数式が動作するかどうか確認します。 static_assert(2 + 2 == 4, "Whoa dude!"); // または _Static_assert(... // コンパイル時エラーを発生させます。 static_assert(sizeof(int) < sizeof(char), "this program requires that int is less than char"); }
[編集] 参考文献
- C11 standard (ISO/IEC 9899:2011):
- 6.7.10 Static assertions (p: 145)
- 7.2 Diagnostics <assert.h> (p: 186-187)
[編集] 関連項目
static assert の C++リファレンス
|