Создание псевдонима на несуществующий метод

class Delegate {
private:
    struct X {
    };
    typedef void (X::*Func)();
    Func _func;
};

Структура X не имеет метода Func, но почему-то есть возможность создать псевдоним.


Ответы (1 шт):

Автор решения: HolyBlackCat

Func - это имя псевдонима (для типа), а не имя метода.

Будет нагляднее если переписать через using: typedef void (X::*Func)(); - то же самое, что using Func = void (X::*)();.

→ Ссылка