1
我想写一个包装类foo
需要std::function
作为参数,并公开一个方法来调用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
我怎样才能使这项工作?