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)
这可能吗?
感谢您提前帮助我解决这个看似奢侈的问题:)
我不相信会有一个简单的方法,从去m_a
到a
.但是,stringize运算符#
是标准C和C++的一部分.
例如,给定
#define STRING(x) #x
Run Code Online (Sandbox Code Playgroud)
然后STRING(m_a)
将转变为"m_a"
.