logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SDL_enabled_assert - The macro used when an assertion is enabled.

Availability

       This macro is available since SDL 3.2.0.

Simple Directmedia Layer                           SDL 3.2.20                              SDL_enabled_assert(3)

Description

       This isn't for direct use by apps, but this is the code that is inserted when an SDL_assert is enabled.

       The do{}while(0) avoids dangling else problems:

              if (x) SDL_assert(y); else blah();

       ... without the do/while, the "else" could attach to this macro's "if". We try to handle just the minimum
       we  need  here  in a macro...the loop, the static vars, and break points. The heavy lifting is handled in
       SDL_ReportAssertion().

Macro Parameters

condition
              the condition to assert.

Name

       SDL_enabled_assert - The macro used when an assertion is enabled.

Synopsis

#include<SDL3/SDL_assert.h>#defineSDL_enabled_assert(condition)\do{\while(!(condition)){\staticstructSDL_AssertDatasdl_assert_data={false,0,#condition,NULL,0,NULL,NULL};\constSDL_AssertStatesdl_assert_state=SDL_ReportAssertion(&sdl_assert_data,SDL_FUNCTION,SDL_FILE,SDL_LINE);\if(sdl_assert_state==SDL_ASSERTION_RETRY){\continue;/*goagain.*/\}elseif(sdl_assert_state==SDL_ASSERTION_BREAK){\SDL_AssertBreakpoint();\}\break;/*notretrying.*/\}\}while(SDL_NULL_WHILE_LOOP_CONDITION)

See Also