15 #ifndef __FunctionPointers_h_
16 #define __FunctionPointers_h_
26 template <
typename TReturn>
39 template<
typename TObject,
typename TReturn>
45 : Instance(instance), FunctionPtr(functionPtr)
51 {
return (this->Instance->*this->FunctionPtr)(); }
58 template<
typename TObject,
typename TReturn,
typename TArg1>
64 : Instance(instance), FunctionPtr(functionPtr), Arg1(arg1)
70 {
return (this->Instance->*this->FunctionPtr)(this->Arg1); }
78 template<
typename TObject,
typename TReturn,
typename TArg1,
typename TArg2>
82 typedef TReturn (TObject::*
TFunctor)(TArg1, TArg2);
84 TArg1 arg1, TArg2 arg2)
85 : Instance(instance), FunctionPtr(functionPtr), Arg1(arg1), Arg2(arg2)
91 {
return (this->Instance->*this->FunctionPtr)(this->Arg1, this->Arg2); }
100 template<
typename TObject,
typename TReturn,
typename TArg1,
typename TArg2,
105 typedef TReturn (TObject::*
TFunctor)(TArg1, TArg2, TArg3);
107 TArg1 arg1, TArg2 arg2, TArg3 arg3)
108 : Instance(instance), FunctionPtr(functionPtr), Arg1(arg1), Arg2(arg2),
116 return (this->Instance->*this->FunctionPtr)
117 (this->Arg1, this->Arg2, this->Arg3);
virtual ~MemberFunction3Args()
virtual ~MemberFunction1Arg()
virtual ~MemberFunction0Args()
virtual ~MemberFunction2Args()
virtual TReturn operator()()
TReturn(TObject::* TFunctor)(void)
MemberFunction2Args(TObject *instance, TFunctor functionPtr, TArg1 arg1, TArg2 arg2)
TReturn(TObject::* TFunctor)(TArg1, TArg2)
TReturn(TObject::* TFunctor)(TArg1)
virtual TReturn operator()()
virtual TReturn operator()()
virtual TReturn operator()()
TReturn(TObject::* TFunctor)(TArg1, TArg2, TArg3)
MemberFunction0Args(TObject *instance, TFunctor functionPtr)
virtual void ExecVoid()=0
MemberFunction3Args(TObject *instance, TFunctor functionPtr, TArg1 arg1, TArg2 arg2, TArg3 arg3)
MemberFunction1Arg(TObject *instance, TFunctor functionPtr, TArg1 arg1)
virtual TReturn operator()()=0