Is there an actual advantage of using a pointer to member function ?

I think the syntax looks no good at all ? I can't comprehend much.

Code:
struct A
{
    void somefunc(){}
};

void A::somefunc(int i)
{
    int (*uglyPointI)(void*);
    uglyPointI=i;
    //do something
    (*uglyPointI)((void*)&i);
}
Please, don't ask me what I am doing because I actually have no idea what I am doing either. I know I am making a bad question and I hope you would correct it and help me make a better question in the future...Thank you..