#pragma once // NOTE: spaces removed from these often used macros to reduce size when expanded #if 1 void voidfunc() { } #define MACRO_BEGIN if(1){ #define MACRO_END }else voidfunc() #else #define MACRO_BEGIN do{ #define MACRO_END }while(0) #endif /** Marker for use in (RVALUE, (expr)) */ #define RVALUE 0 #define _CAT(a, b) a ## b #define CAT(a, b) _CAT(a, b) #define _STR(it) #it #define STR(it) _STR(it) #define EMPTY() #define DEFER(id) id EMPTY()