我正在尝试编写一个包装类foo
,它以std::function
作为参数,并公开一个方法来调用std::function
。我没有成功尝试以下
template<class R, class ...Args>
class foo
{
public:
foo(std::function<R(Args...)> f)
:_f(f)
{
}
R invoke(Args... args)
{
return _f(args...);
}
private:
std::function<R(Args...)> _f;
};
int main()
{
foo<void()> f([&](){ std::cout << "hi\n"; });
f.invoke();
}
这不编译并给出以下错误
error C2091: function returns function
我该如何做到这一点?
答案 0 :(得分:3)