Would something like this help:

class CallbackBase {
public:
    virtual void invoke(void) = 0;
} ;

template<typename T> class Callback_t : public CallbackBase {
public:
    typedef T data_t;
private:
       data_t data;
       void (*function)(data_t) ;
public:
       virtual void invoke(void) { function(data); }

       Callback_t(data_t d, void (*f)(data_t)) : data(d), function(f) {}
} ;

template<typename D> CallbackBase *mkCallback(D data, void (*function)(D d))
            {  return new Callback_t<D>(data, function); }



Michael Hennebry

_______________________________________________
Simulavr-devel mailing list
Simulavr-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/simulavr-devel

Reply via email to