41 #if !defined( GLS_FUNCTOR_H )
42 # define GLS_FUNCTOR_H
72 template<
class O,
class T>
76 typedef T ( O::*
F )();
90 template<
class O,
class T>
94 typedef T ( O::*
F )()
const;
117 template<
class O,
class T>
125 template<
class O,
class T>
147 typedef void ( *
F )( T );
159 template<
class O,
class T>
163 typedef void ( O::*
F )( T );
177 template<
class O,
class T>
181 typedef void ( O::*
F )( T )
const;
203 template<
class O,
class T>
211 template<
class O,
class T>
220 template<
class T1,
class T2>
224 virtual void operator()( T1 arg1, T2 arg2 ) = 0;
229 template<
class O,
class T1,
class T2>
233 typedef void ( O::*
F )( T1, T2 );
237 virtual void operator()( T1 arg1, T2 arg2 ) { ( *_f )( arg1, arg2 ); }
245 template<
class O,
class T1,
class T2>
249 typedef void ( O::*
F )( T1, T2 );
263 template<
class O,
class T1,
class T2>
267 typedef void ( O::*
F )( T1, T2 )
const;
281 template<
class O,
class T1,
class T2>
289 template<
class O,
class T1,
class T2>
297 template<
class O,
class T1,
class T2>
306 template<
class T1,
class T2,
class T3>
310 virtual void operator()( T1 arg1, T2 arg2, T3 arg3 ) = 0;
315 template<
class O,
class T1,
class T2,
class T3>
319 typedef void ( O::*
F )( T1, T2, T3 );
323 virtual void operator()( T1 arg1, T2 arg2, T3 arg3 ) { ( *_f )( arg1, arg2, arg3 ); }
331 template<
class O,
class T1,
class T2,
class T3>
335 typedef void ( O::*
F )( T1, T2, T3 );
340 virtual void operator()( T1 arg1, T2 arg2, T3 arg3 ) { (
_o.*
_f )( arg1, arg2, arg3 ); }
349 template<
class O,
class T1,
class T2,
class T3>
353 typedef void ( O::*
F )( T1, T2, T3 )
const;
358 virtual void operator()( T1 arg1, T2 arg2, T3 arg3 ) { (
_o.*
_f )( arg1, arg2, arg3 ); }
367 template<
class O,
class T1,
class T2,
class T3>
375 template<
class O,
class T1,
class T2,
class T3>
383 template<
class O,
class T1,
class T2,
class T3>
389 #endif // GLS_FUNCTOR_H
GlsConstMemberFunctor1_T(const O &o, F f)
virtual void operator()(T arg)
virtual void operator()(T arg)
virtual void operator()(T1 arg1, T2 arg2, T3 arg3)
virtual void operator()(T1 arg1, T2 arg2, T3 arg3)=0
GlsMemberFunctor1_T(O &o, F f)
GlsStaticMemberFunctor1_T(F f)
virtual void operator()(T1 arg1, T2 arg2)=0
GlsMemberFunctor2_T(O &o, F f)
GlsConstMemberFunctor2_T(const O &o, F f)
virtual void operator()(T arg)
GlsStaticMemberFunctor3_T(F f)
virtual void operator()(T1 arg1, T2 arg2)
virtual void operator()(T1 arg1, T2 arg2, T3 arg3)
virtual void operator()(T1 arg1, T2 arg2, T3 arg3)
GlsMemberFunctor3_T(O &o, F f)
GlsStaticMemberFunctor2_T(F f)
void(O::* F)(T1, T2, T3) const
GlsMemberFunctor_T(O &o, F f)
GlsStaticMemberFunctor_T(F f)
GlsConstMemberFunctor3_T(const O &o, F f)
void(O::* F)(T1, T2) const
GlsConstMemberFunctor_T(const O &o, F f)
virtual void operator()(T1 arg1, T2 arg2)
virtual void operator()(T1 arg1, T2 arg2)
virtual T operator()(T arg)
virtual void operator()(T arg)=0
GlsStaticMemberFunctor_T< T > * GlsFunctor(T(*f)())