#define do_log(X, Y...) if ( !(< DBG, TME >)[T] ) low_log(X, Y)
[...]
Now I wonder how I should rewrite the above macro definition so I can be sure it checks it's own 'if' and never unexpectedly interferes which other else statements... I don't know how...
#define do_log(X, Y...) do { if ( !(< DBG, TME >)[T] ) low_log(X, Y); } while(0)
A classic.