#pragma once #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 #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()