我有多个具有不同数量参数的函数,例如
double foo(double x, double y) { return x + y; }
double bar(double x, double y, double z) { return x + y + z; }
double zoo(double x, double y) { return x * y; }
我想通过以下方式使用一些catchall函数按名称来调用函数:
call_function("foo", x, y);
call_function("bar", x, y, z);
可以假设参数和函数返回具有相同的类型(例如double
,如上例所示)。不幸的是,由于项目的复杂性,我无法更改调用的函数,因此需要按原样进行处理。
有什么简单的解决方案吗?
#define CALL(fn, x, y) fn(x, y)
#define CALL(fn, x, y, z) fn(x, y, z)
允许您执行以下操作:
CALL(foo, 13, 6);
CALL(bar, 1, 2, 3);
这样够好吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句