In Bjarne Stroustrup\'s home page (C++11 FAQ):
struct X { int foo(int); }; std::function f; f = &X::foo; //pointer to membe
They're not function pointers. That's what std::function exists for. It wraps whatever callable types you give it. You should check out boost::bind- it's often used to make member function pointers callable as (this, args).