我有一个这样的宏(它来自一个实际有用的用例,但我一直在玩简化的用例):
#define MY_MACRO(M) M(3) M(5) M(7)
#define MULTIPLY_BY_2(A) (2*A)
然后我可以写
MY_MACRO(MULTIPLY_BY_2)
// -> (2*3) (2*5) (2*7)
太棒了!我想要的是:
#define MULTIPLY(A,B) (A*B)
MY_MACRO(BIND(MULTIPLY, 2))
得到和上面一样的结果。 BIND 可能是什么?我已经尝试了一些 hack,并且可以报告说这几乎是可能的(我觉得这很神奇)。但它并不漂亮,也不一般。这能做得好吗? (即纯粹在CPP中构建一些真正的功能设施?)是否可以做得足够好以绑定(bind)绑定(bind)宏?
也许我真正想问的是,在您所知道的任何预处理器库中是否有这样的工具?我在 Boost 中找不到类似的东西。
最佳答案
对不起,你不能要求宏编程很漂亮。
关于c++ - C预处理器中的功能绑定(bind)操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10254567/