目次 - SDL 3.0 API(機能別) - アサーション - SDL_assert_paranoid

SDL_assert_paranoid

厳格な設定のビルド時のみアサーションを生成するマクロ

ヘッダ

SDL3/SDL_assert.h

構文

#define SDL_assert_paranoid(condition) SDL_disabled_assert(condition)

引数

boolconditionテストの対象のブール値

詳細

このマクロはSDL_ASSERT_LEVELが3以上の場合に有効になり, そうでない場合は無効になる. このアサーションのレベルはリリースやデバッグよりも高く, まれな失敗を見つけるための高負荷なテストを特別なビルドで使用することを意図している.

アサーションが無効の場合, conditionはsizeof演算子で囲まれる. これにより, 関数の呼び出しと副作用は実行されなくなり, アサーションのみ参照する不使用の変数に対して警告も発しないようになる.

環境変数"SDL_assert_paranoid"にいくつかの文字列("abort", "break", "retry", "ignore", "always_ignore")の1つを設定してデフォルトの動作を変えることができる. メインスレッドがGUIインターフェースだが, バックグラウンドスレッドでアサーションデバッグを行うときは, "break"に設定するとデバッガはアプリケーションのUIが悪い影響(デッドロック等)を受けずにアサーションが発生するとすぐにコントロールを得ることができる.

スレッドセーフ

このマクロはどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_assert_paranoid - SDL Wiki