I can easily bind member functions to a std::function by wrapping them with a lambda expression with capture clause.
class Class
{
    Class()
    {
        Register([=](int n){ Function(n); });
    }
    void Register(std::function<void(int)> Callback)
    {
    }
    void Function(int Number)
    {
    }
};
But I want to bind them directly, something like the following.
// ...
Register(&Class::Function);
// ...
I think according to the C++11 standard, this should be supported. However, in Visual Studio 11 I get these compiler errors.
error C2440: 'newline' : cannot convert from 'int' to 'Class *'
error C2647: '.*' : cannot dereference a 'void (__thiscall Class::* )(int)' on a 'int'
 
     
     
     
     
     
    