Sobrecargar macro de preprocesador C / C ++ en la estructura de su argumento
Me gustaría escribir una macro de preprocesador que haga una cosa si su argumento es una tupla de tokens entre paréntesis, como esta:
MY_MACRO((x, y))
y algo más si es solo una ficha, como esta:
MY_MACRO(x)
¿Es eso posible
¿Qué hay de distinguir entre el número de tokens separados por espacios, es decir, entreMY_MACRO(x)
yMY_MACRO(x y)
?
enga en cuenta que no estoy tratando de sobrecargar en función de la cantidad de argumentos: es una macro unaria en todos los casos.
EDITA: Estoy dispuesto a usar macros variables si ayudan a