可能重复:
Is it possible to figure out the parameter type and return type of a lambda?
我想创建一个接受整数和任意函数(具有任意返回类型和参数)的函数,就像这样调用:
server.bind(tag, [&](std::string greeting) { return greeting + " earth."; });
关于如何设置模板以获取lambda的返回类型以及lambda参数的类型被扣除的任何想法?
以下代码尽可能接近,但是使用上面的代码无法模板参数推断:
template <typename Return, typename... Args>
void service::bind(uint16_t tag,
std::function<Return (Args...)> function)
{
...
}