使用下面的类,我希望能够创建一个指定的实例Foo()
来存储和调用函数,但是如何将必要的参数传递给函数call
?
template<class R, class... Args> struct Foo {
std::function<R(Args...)> func;
Foo(const std::function<R(Args...)> &funcIn) : func(funcIn) {}
R call(Args...) {
return func(/* ? */);
}
};
例如:
int main() {
typedef typename Foo<int(int)> Bar;
Bar x([](int y, int z){return y + z + 2;});
std::cout << x.call(12, 7);
return 0;
}