Ключевое слово typename
не используется для импорта или определения новых псевдонимов типов.То, что вы делаете, на самом деле определяет переменную-член с именем EventHandler
.
Вам нужно снова использовать typdef
, чтобы определить псевдоним типа:
typedef typename Consumer::EventHandler EventHandler;
Или с современным C ++ с использованием using
:
using EventHandler = typename Consumer::EventHandler;