Tengo un conjunto de clases de devolución de llamada que utilizo para manejar devoluciones de llamada con números variables de parámetros. En este momento tengo aproximadamente 6 instancias diferentes para manejar diferentes números de argumentos. ¿Hay alguna manera de hacer una instancia que no pueda manejar una cantidad variable de argumentos? En última instancia, me encantaría que cada parámetro sea un tipo de POD o un puntero de clase, o un puntero de estructura. ¿Algunas ideas?¿Hay alguna forma de manejar una cantidad variable de parámetros en una clase de plantilla?
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);
};