#define MAX_GENERATE(T) T T##max(T a, T b) { \
                               return (a < b) ? b : a; \
                               }
#define MAX(T)  T##max

MAX_GENERATE(int)

MAX_GENERATE(float)

int test(void)
{
  int a, b;
  
  return MAX(int)(a,b);
}


