对于一个库,我想要一个接受另一个函数及其参数的函数,然后将它们存储起来以便以后调用.参数必须允许任何类型的混合,但函数只需要返回void.像这样的东西:
void myFunc1(int arg1, float arg2);
void myFunc2(const char *arg1);
class DelayedCaller
{ ...
public:
    static DelayedCaller *setup(Function func, …);
};
...
DelayedCaller* caller1 = DelayedCaller::setup(&myFunc1, 123, 45.6);
DelayedCaller* caller2 = DelayedCaller::setup(&myFunc2, "A string");
caller1->call(); // Calls myFunc1(), with arguments 123 and 45.6
caller2->call(); // Calls myFunc2(), with argument "A string"
一种方法是让DelayedCaller :: setup()接受一个std :: function,让我的库用户在调用setup()之前使用std :: bind().但是,有没有办法实现setup(),以便用户不需要自己进行绑定?
编辑:DelayedCaller是一个现有的类.setup()是一个我想添加的新静态方法.