C++宏文本操作

Ste*_*phQ 4 c++ c-preprocessor

我想写一个C++宏,采取任意参数,如:

#define MANIP(...) \ 
//Implementation
Run Code Online (Sandbox Code Playgroud)

这样的写作

MANIP(m_a, m_b, m_c);
Run Code Online (Sandbox Code Playgroud)

扩展到

f(a, b, c);
g("a", "b", "c");
Run Code Online (Sandbox Code Playgroud)

这可能吗?

感谢您提前帮助我解决这个看似奢侈的问题:)

Der*_*urk 6

我不相信会有一个简单的方法,从去m_aa.但是,stringize运算符#是标准C和C++的一部分.

例如,给定

#define STRING(x) #x
Run Code Online (Sandbox Code Playgroud)

然后STRING(m_a)将转变为"m_a".