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".