我想编写一个C++宏,接受任意参数,例如:

#define MANIP(...) \
//Implementation

这样写
MANIP(m_a, m_b, m_c);

扩展到
f(a, b, c);
g("a", "b", "c");

这可能吗?

在此先感谢您帮助我解决这个看似奢侈的问题:)

最佳答案

我不相信从m_aa会有简单的方法。但是,字符串化运算符#是标准C和C++的一部分。

例如,给定

#define STRING(x) #x

然后STRING(m_a)将转换为"m_a"

关于C++宏文本操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4832331/

10-12 03:01