Параметр шаблона - указатель на функцию с переменными аргументами

Я знаю, что я могу сделать это:

template<typename T, typename Ret, typename A1, typename A2, Ret(T::*F)(A1, A2)>
class C{}

Но как вы можете видеть этоA1 а такжеA2 немного некрасиво На самом деле я не знаю количество аргументов. Похоже, работа для вариационных шаблонов. К сожалению я не могу сделать это:

// doesn't work - parameter pack must appear at the end of the template parameter list
template<typename T, typename Ret, typename... Args, Ret(T::*F)(Args...)>
class C{}

Ни это:

шаблон класса C;

// doesn't work - wrong syntax
template<typename T, typename F, typename Ret, typename... Args>
class Delegate2<Ret(T::*F)(Args...)>{}

Я хочу слишком много?

Ответы на вопрос(2)

Ваш ответ на вопрос