Я никогда не смогу вспомнить ужасную функцию C ++ declspec, поэтому всякий раз, когда мне нужно выяснить, например, синтаксис, описывающий функцию-член, я просто вызываю намеренную ошибку компилятора, которая обычно отображает правильный синтаксис для меня.
Так дано:
class StateMachine {
bool stateA(int someArg);
};
Какой синтаксис для typeA typedef? Понятия не имею .. поэтому давайте попробуем присвоить ему что-то не связанное и посмотрим, что говорит компилятор:
char c = StateMachine::stateA
Компилятор говорит:
error: a value of type "bool (StateMachine::*)(int)" cannot be used to initialize
an entity of type "char"
Вот оно: "bool (StateMachine :: *) (int)" - это наша typedef.