Pré-processador C para dividir “int x” em int & x
Eu preciso ser capaz de obter o seguinte:
#define MY_MACRO(PARAM1,PARAM2) \
MY_OTHER_MACRO(TYPENAME_OF(PARAM1),PARAMNAME_OF(PARAM1));\
MY_OTHER_MACRO(TYPENAME_OF(PARAM2),PARAMNAME_OF(PARAM2));\
causar
MY_MACRO(int x,char *z)
compilar como
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char*,z);
ou não seria o fim do mundo se compilado como:
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,*z);
ou até mesmo isso seria ok também: (eu posso codificar MY_OTHER_MACRO para trabalhar com qualquer resultado)
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,z);
alternativamente, se houver alguma maneira de contar os tokens separados por espaço em branco (e assumir que "*" é token separado, posso trabalhar com isso também - por exemplo, 2 vs 3) normalmente, os tokens são separados por vírgulas, até onde eu sei. Existe alguma maneira de usar outro personagem?