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);