1*035674d3SArgyrios Kyrtzidis @interface MyClass 2*035674d3SArgyrios Kyrtzidis +(void)meth; 3*035674d3SArgyrios Kyrtzidis @end 4*035674d3SArgyrios Kyrtzidis 5*035674d3SArgyrios Kyrtzidis #define MACRO2(x) x 6*035674d3SArgyrios Kyrtzidis #define MACRO(x) MACRO2(x) 7*035674d3SArgyrios Kyrtzidis test()8*035674d3SArgyrios Kyrtzidisvoid test() { 9*035674d3SArgyrios Kyrtzidis MACRO([MyClass meth]); 10*035674d3SArgyrios Kyrtzidis } 11*035674d3SArgyrios Kyrtzidis 12*035674d3SArgyrios Kyrtzidis #define INVOKE(METHOD, CLASS) [CLASS METHOD] 13*035674d3SArgyrios Kyrtzidis test2()14*035674d3SArgyrios Kyrtzidisvoid test2() { 15*035674d3SArgyrios Kyrtzidis INVOKE(meth, MyClass); 16*035674d3SArgyrios Kyrtzidis } 17