我想编写一个C++宏,接受任意参数,例如:
#define MANIP(...) \
//Implementation
这样写
MANIP(m_a, m_b, m_c);
扩展到
f(a, b, c);
g("a", "b", "c");
这可能吗?
在此先感谢您帮助我解决这个看似奢侈的问题:)
最佳答案
我不相信从m_a
到a
会有简单的方法。但是,字符串化运算符#
是标准C和C++的一部分。
例如,给定
#define STRING(x) #x
然后
STRING(m_a)
将转换为"m_a"
。关于C++宏文本操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4832331/