Template-Parameter - Funktionszeiger mit verschiedenen Argumenten

Ich weiß, ich kann dies tun

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

Aber wie Sie sehen können,A1 undA2 sind etwas hässlich. Tatsächlich kenne ich die Anzahl der Argumente nicht. Klingt nach einer Arbeit für verschiedene Vorlagen. Leider kann ich das nicht machen:

// 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{}

Nor this:

template class C;

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

Will ich zu viel?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage