目次 - SDL 3.0 API(機能別) - 標準ライブラリ - SDL_COMPILE_TIME_ASSERT

SDL_COMPILE_TIME_ASSERT

コンパイル時アサーションのマクロ

ヘッダ

SDL3/SDL_stdinc.h

構文

#define SDL_COMPILE_TIME_ASSERT(name, x) FailToCompileIf_x_IsFalse(x)

引数

nameこのアサーションの一意な識別子
xテストする値. ブール値の必要がある

詳細

このマクロでコンパイラがビルド時に知っている定数の適合性をコンパイル時にチェックできる. 失敗の場合, コンパイルはエラーで終了する.

データ型のサイズが想定通りであるかのような基本的なチェックで用いられる:

SDL_COMPILE_TIME_ASSERT(uint32_size, sizeof(Uint32) == 4);

name引数はCシンボルに適合していて, かつ同一のコンパイル単位(コンパイラの一度の実行)の全てのコンパイル時アサーションで一意である必要がある. そうでない場合, 一部の環境ではビルド時に不明瞭な失敗が発生する. このアサーションに対応していない古いコンパイラでは, C言語のトリックを使用して実現している.

実行時のアサーションが必要な場合は, SDL_assertを使用すること.

スレッドセーフ

このマクロはコードを生成しない.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_COMPILE_TIME_ASSERT - SDL Wiki