是否有可能推导出仿函数的参数类型?例如:
struct foo {
int operator()(double, std::string const&) const { return 0; }
};
template<class Foo>
struct bar
{
using first_argument_type = /* type of the first argument of Foo::operator() */;
using second_argument_type = /* type of the second argument of Foo::operator() */;
using return_type = std::result_of_t<Foo(first_argument_type, second_argument_type)>;
};