C Preprocesor do dzielenia „int x” na int & x
Muszę mieć możliwość uzyskania następujących informacji:
#define MY_MACRO(PARAM1,PARAM2) \
MY_OTHER_MACRO(TYPENAME_OF(PARAM1),PARAMNAME_OF(PARAM1));\
MY_OTHER_MACRO(TYPENAME_OF(PARAM2),PARAMNAME_OF(PARAM2));\
powodować
MY_MACRO(int x,char *z)
skompilować jako
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char*,z);
lub nie byłby to koniec świata, gdyby został skompilowany jako:
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,*z);
lub nawet byłoby to w porządku: (mogę kodować MY_OTHER_MACRO do pracy z dowolnym wynikiem)
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,z);
alternatywnie, jeśli istnieje jakiś sposób liczenia tokenów oddzielonych białymi znakami (i załóżmy, że „*” jest oddzielnym tokenem, mogę też z tym pracować - np. 2 vs 3) zazwyczaj tokeny są oddzielane przecinkami, o ile wiem. czy jest jakiś sposób na użycie innej postaci?