#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を使用すること.
このマクロはコードを生成しない.