Estoy tratando de averiguar cómo escribir una macro que pasará una representación literal de cadena de un nombre de variable junto con la variable misma en una función.¿Cómo utilizar el argumento de macro como cadena literal?
Por ejemplo, dada la siguiente función.
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
me gustaría escribir una macro para que pueda hacer esto:
int my_val = 5;
CALL_DO_SOMETHING(my_val);
cual sería imprimir: my_val: 5
He intentado hacer lo siguiente:
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
Sin embargo, como se puede adivinar, el VAR dentro de las comillas no se reemplaza, sino que simplemente se pasa como la cadena literal "VAR". Entonces me gustaría saber si hay una manera de hacer que el argumento macro se convierta en una cadena literal.
Cómo estás tratando para usar esto? – chris