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