名前空間
変種
操作

static assert 宣言

提供: cppreference.com
< c‎ | language

目次

[編集] 構文

_Static_assert ( expression , message ) (C11以上)
_Static_assert ( expression ) (C2x以上)
expression - 任意の整数定数式
message - 任意の文字列リテラル

このキーワードはヘッダ <assert.h> で利用可能な便利マクロ static_assert としても利用可能です。

[編集] 説明

定数式がコンパイル時に評価され、ゼロと比較されます。 ゼロと等しければコンパイル時エラーが発生し、コンパイラは message (もしあれば) をエラーメッセージの一部として表示しなければなりません (ただし基本ソース文字集合外の文字を表示することは要求されません)。

そうでなく、 expression がゼロと等しくなければ、何も起きません。 コードは生成されません。

[編集] キーワード

_Static_assert

[編集]

#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 assertC++リファレンス