Değişken isminin hem bir dize değişmez gösterimini hem de değişkenin kendisini bir işleve geçirecek bir makroyu nasıl yazacağımı bulmaya çalışıyorum.
Örneğin aşağıdaki işlev verildi.
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
Bunu yapabilmek için bir makro yazmak istiyorum:
int my_val = 5;
CALL_DO_SOMETHING(my_val);
Hangisi çıktılanır: my_val: 5
Aşağıdakileri yapmayı denedim:
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
Ancak, tahmin edebileceğiniz gibi, tırnak içindeki VAR değiştirilmez, sadece "VAR" dizesi olarak aktarılır. Bu yüzden makro argümanının bir dizgeye dönüştürülmesinin bir yolu olup olmadığını bilmek isterim.