wiem, że mogę to zrobić:szablonu parametr - wskaźnik z funkcji o zmiennej liczbie argumentów argumentów
template<typename T, typename Ret, typename A1, typename A2, Ret(T::*F)(A1, A2)>
class C{}
Ale jak widać to A1
i A2
są nieco brzydki. W rzeczywistości nie znam liczby argumentów. Brzmi jak praca dla szablonów variadycznych. Niestety nie mogę tego zrobić:
// 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 to:
szablon klasy C;
// doesn't work - wrong syntax
template<typename T, typename F, typename Ret, typename... Args>
class Delegate2<Ret(T::*F)(Args...)>{}
Czy chcę za dużo?
Ładne, naprawdę ładne. Wygląda na to, że chciałem, dziękuję, pomyślałem, że najpierw muszę zrozumieć, jak to działa. Dlaczego używam 'template'? Dlaczego 'template ' i specjalizacja 'szablon struct C ' nie działa? –
nikitablack