Add wxDO_IF() helper macro
This will be used for wxLogXXX() macros reimplementation in the next commit.
This commit is contained in:
@@ -96,6 +96,27 @@
|
|||||||
#define wxSTATEMENT_MACRO_BEGIN do {
|
#define wxSTATEMENT_MACRO_BEGIN do {
|
||||||
#define wxSTATEMENT_MACRO_END } while ( (void)0, 0 )
|
#define wxSTATEMENT_MACRO_END } while ( (void)0, 0 )
|
||||||
|
|
||||||
|
/*
|
||||||
|
Helper for executing the following statement conditionally without using
|
||||||
|
conditional statements.
|
||||||
|
|
||||||
|
This strange macro is needed in the first place to avoid the problems due
|
||||||
|
to nested if/else inside macros. E.g. if some MACRO started with "if", then
|
||||||
|
|
||||||
|
if ( cond )
|
||||||
|
MACRO();
|
||||||
|
else
|
||||||
|
...
|
||||||
|
|
||||||
|
would be broken because "..." would bind to the wrong "if" inside the macro
|
||||||
|
rather than the visible one. So we use wxDO_IF() inside the macro instead
|
||||||
|
to avoid this problem.
|
||||||
|
*/
|
||||||
|
#define wxDO_IF_HELPER(loopvar, condition) \
|
||||||
|
for ( bool loopvar = false; !loopvar && condition; loopvar = true )
|
||||||
|
|
||||||
|
#define wxDO_IF(condition) wxDO_IF_HELPER(wxMAKE_UNIQUE_NAME(wxdoif), condition)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Define __WXFUNCTION__ which is like standard __FUNCTION__ but defined as
|
Define __WXFUNCTION__ which is like standard __FUNCTION__ but defined as
|
||||||
NULL for the compilers which don't support the latter.
|
NULL for the compilers which don't support the latter.
|
||||||
|
Reference in New Issue
Block a user