mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
PlatformDefs: Add new jassertquiet macro
This behaves a lot like jassert, but will never emit unused-variable warnings.
This commit is contained in:
parent
9e57375085
commit
46e62b9efe
1 changed files with 16 additions and 6 deletions
|
|
@ -142,14 +142,14 @@ namespace juce
|
|||
that have important side-effects!
|
||||
@see Logger::outputDebugString
|
||||
*/
|
||||
#define DBG(textToWrite) JUCE_BLOCK_WITH_FORCED_SEMICOLON (juce::String tempDbgBuf; tempDbgBuf << textToWrite; juce::Logger::outputDebugString (tempDbgBuf);)
|
||||
#define DBG(textToWrite) JUCE_BLOCK_WITH_FORCED_SEMICOLON (juce::String tempDbgBuf; tempDbgBuf << textToWrite; juce::Logger::outputDebugString (tempDbgBuf);)
|
||||
|
||||
//==============================================================================
|
||||
/** This will always cause an assertion failure.
|
||||
It is only compiled in a debug build, (unless JUCE_LOG_ASSERTIONS is enabled for your build).
|
||||
@see jassert
|
||||
*/
|
||||
#define jassertfalse JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
|
||||
#define jassertfalse JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
|
||||
|
||||
//==============================================================================
|
||||
/** Platform-independent assertion macro.
|
||||
|
|
@ -159,19 +159,29 @@ namespace juce
|
|||
correct behaviour of your program!
|
||||
@see jassertfalse
|
||||
*/
|
||||
#define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
|
||||
#define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
|
||||
|
||||
/** Platform-independent assertion macro which suppresses ignored-variable
|
||||
warnings in all build modes. You should probably use a plain jassert()
|
||||
by default, and only replace it with jassertquiet() once you've
|
||||
convinced yourself that any unused-variable warnings emitted by the
|
||||
compiler are harmless.
|
||||
*/
|
||||
#define jassertquiet(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
|
||||
|
||||
#else
|
||||
//==============================================================================
|
||||
// If debugging is disabled, these dummy debug and assertion macros are used..
|
||||
|
||||
#define DBG(textToWrite)
|
||||
#define jassertfalse JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION)
|
||||
#define jassertfalse JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION)
|
||||
|
||||
#if JUCE_LOG_ASSERTIONS
|
||||
#define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
|
||||
#define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
|
||||
#define jassertquiet(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
|
||||
#else
|
||||
#define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON ( ; )
|
||||
#define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON ( ; )
|
||||
#define jassertquiet(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (false) (void) (expression);)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue