#define _CONCATX(x, y) x ## y #define _CONCAT(x, y) _CONCATX(x,y) #define INVOKE(PREFIX) \ struct _CONCAT(PREFIX, _Invoker) \ { } #define EMPTY_ARG /* empty */ INVOKE(EMPTY_ARG);