How can I create a std::function from member function without need for typing std::placeholders::_1, std::placeholders::_2, etc - I would like to \"placehold\" all arguments
You can easily do this with variadic generic lambdas in C++14:
template auto smart_bind(F f, C* c) { return [c, f](auto&&... args) { return (c->*f)(std::forward(args)...); }; } // In your code: std::function fun2 = smart_bind(&Foo::bar, &object);
Live demo: https://ideone.com/deR4fy