C ++在宏中获取宏名称

c++ get macro name in macro

如何获取宏中的宏名? 假设我们有:

#include <iostream>
using std::cout;
using std::endl;

#define MACRO() \
cout << __MACRO_NAME__ << endl

int main () {
    MACRO();
    return 0;
}

预期输出:

MACRO

做了一点研究,我认为这在 C++ 中是不可行的。

但是你可以使用这个:

#define MACRO2(x) cout << #x << endl
#define MACRO MACRO2(MACRO)

在此您可以使用 MACRO2 来完成 MACRO 的任务,您还可以访问 MACRO 的名称作为参数 x.