변수 이름의 문자열 리터럴 표현과 변수 자체를 함수로 전달하는 매크로를 작성하는 방법을 알아 내려고합니다.
예를 들어 다음과 같은 기능이 있습니다.
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
이 작업을 수행 할 수 있도록 매크로를 작성하고 싶습니다.
int my_val = 5;
CALL_DO_SOMETHING(my_val);
다음과 같이 인쇄됩니다. my_val: 5
다음을 시도했습니다.
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
그러나 짐작할 수 있듯이 따옴표 안의 VAR은 대체되지 않고 문자열 리터럴 "VAR"로 전달됩니다. 따라서 매크로 인수를 문자열 리터럴 자체로 바꾸는 방법이 있는지 알고 싶습니다.