#include #include #include class MyClass { public: template auto operator()(T t, U u) const -> decltype(t + u) { return t + u; } }; int main() { auto myObj = std::bind(MyClass(), std::placeholders::_1, "confusing"); std::cout << myObj(4) << myObj(std::string(" this is ")) << std::endl; }