Ich habe eine Reihe von Callback-Klassen, die ich für Callbacks mit variabler Anzahl von Parametern verwenden. Im Moment habe ich ungefähr 6 verschiedene Instanzen davon, um unterschiedliche Anzahlen von Argumenten zu behandeln. Gibt es eine Möglichkeit, eine Instanz zu erstellen, als mit einer variablen Anzahl von Argumenten umgehen zu können? Letztendlich würde ich gerne jeden Parameter als einen POD-Typ oder einen Klassenzeiger oder einen Strukturzeiger haben. Irgendwelche Ideen?Gibt es eine Möglichkeit, mit einer variablen Anzahl von Parametern in einer Vorlagenklasse umzugehen?
template <class T>
class kGUICallBackPtr
{
public:
kGUICallBackPtr() {m_obj=0;m_func=0;}
void Set(void *o,void (*f)(void *,T *));
inline void Call(T *i) {if(m_func) m_func(m_obj,i);}
inline bool IsValid(void) {return (m_func!=0);}
private:
void *m_obj;
void (*m_func)(void *,T *);
};
template <class T,class U>
class kGUICallBackPtrPtr
{
public:
kGUICallBackPtrPtr() {m_obj=0;m_func=0;}
void Set(void *o,void (*f)(void *,T *,U *));
inline void Call(T *i, U *j) {if(m_func) m_func(m_obj,i,j);}
inline bool IsValid(void) {return (m_func!=0);}
private:
void *m_obj;
void (*m_func)(void *,T *,U *j);
};