Если следующее из C ++ FAQ Lite верно: «имя функции распадается на указатель на функцию» (так как имя массива распадается на указатель на свой первый элемент) ; почему мы должны включать амперсанд?
typedef int (Fred::*FredMemFn)(char x, float y);
FredMemFn p = &Fred::f;
И не только:
typedef int (Fred::*FredMemFn)(char x, float y);
FredMemFn p = Fred::f;
Во втором случае Fred :: f является функцией и может распадаться на указатель на эту функцию.
Я надеюсь, что этот вопрос не в том, что глупо.