Public feed
#725322
union ucallback{ void* ptr;};class ICallBack{ public: virtual void Call(ucallback param) = 0;};template <class T, void (T::*Method)(ucallback)>class CPP_CallBack : public ICallBack{ public: CPP_CallBack(T& owner) : m_owner(owner) {} void Call(ucallback param) { m_owner.*Method(param); } private: CPP_CallBack(); T& m_owner;};class C_CallBack : public ICallBack{ typedef void (*Method)(ucallback); public: C_CallBack(Method method) : m_method(method) {} void Call(ucallback param) { m_method(param); } private: C_CallBack(); Method m_method;};