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