Wheres the difference?
arbitrary number of parameters
e.g.
struct Foo {
void operator()(int, float, double, char) const {}
};
void bar() {
const Foo f;
auto x = std::mem_fn(&Foo::operator());
x(f, 1, 3.14f, 4.14, 'a');
}
where as std::mem_fun_t like objects are
"[Wrappers] around a member function pointer. The class instance whose member function to call is passed as a pointer to the operator().
1) Wraps a non-const member function with no parameters.
2) Wraps a const member function with no parameters.
3) Wraps a non-const member function with a single parameter.
4) Wraps a const member function with a single parameter."
https://en.cppreference.com/w/cpp/utility/functional/mem_fun_t