Im в настоящее время реализует общий класс событий. Обработчики событий имеют параметр отправителя и переменное количество аргументов событий. Таким образом, декларация класса событий как ниже:CRTP + variadic template + extract Параметры подкласса CRTP
template<typename SENDER , typename... ARGS>
class event;
Чтобы разрешить некоторые детали реализации, мне нужно CRTP события, как это:
template<typename SENDER , typename... ARGS>
class event : public CRTPBase<event<SENDER,ARGS...>> { ... };
И основание CRTP нужно знать параметры события. Поэтому я попытался с шаблоном шаблона param:
template<typename SENDER , template<typename SENDER , typename... ARGS> class EVENT, typename ARGS>
class CRTPBase { ... };
Но это не сработает (я использую GCC 4.8.1).
So: Каков наилучший способ извлечения вариационных и невариантных параметров шаблона аргумента CRTP?
EDIT: Другой способ заключается в обеспечении параметров событий непосредственно с помощью шаблона CRTP (template<typename EVENT , typename EVENT_SENDER , typename... EVENT_ARGS> class CRTPBase;
), но я думаю, что есть способ сделать это напрямую, без сочинительства в Params в явном виде.
Я пробовал это, но я не знаю, почему это не сработало :(Но спасибо – Manu343726
@ Manu343726: Что значит «не работает»? –
О, исправлено. – Manu343726