[Orxonox-commit 1107] r5828 - code/branches/core5/src/libraries/core
landauf at orxonox.net
landauf at orxonox.net
Mon Sep 28 21:14:01 CEST 2009
Author: landauf
Date: 2009-09-28 21:14:00 +0200 (Mon, 28 Sep 2009)
New Revision: 5828
Modified:
code/branches/core5/src/libraries/core/Functor.h
Log:
Overloaded createFunctor for FunctorMember<T> with a second argument "T* object" which serves as the object for a member-function.
These are equivalent:
- createFunctor(&A::f, pointer);
- createFunctor(&A::f)->setObject(pointer);
- FunctorMember<A>* functor = createFunctor(&A::f); functor->setObject(pointer);
Modified: code/branches/core5/src/libraries/core/Functor.h
===================================================================
--- code/branches/core5/src/libraries/core/Functor.h 2009-09-28 19:10:04 UTC (rev 5827)
+++ code/branches/core5/src/libraries/core/Functor.h 2009-09-28 19:14:00 UTC (rev 5828)
@@ -433,6 +433,23 @@
inline FunctorConstMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams)* createFunctor(FUNCTOR_FUNCTION_RETURNVALUE(returnvalue) (T::*functionPointer)(FUNCTOR_FUNCTION_PARAMS(numparams)) const) \
{ \
return new FunctorConstMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams) (functionPointer); \
+ } \
+ \
+ FUNCTOR_TEMPLATE(1, returnvalue, numparams) \
+ inline FunctorMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams)* createFunctor(FUNCTOR_FUNCTION_RETURNVALUE(returnvalue) (T::*functionPointer)(FUNCTOR_FUNCTION_PARAMS(numparams)), T* object) \
+ { \
+ FunctorMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams)* functor = new FunctorMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams) (functionPointer); \
+ functor->setObject(object); \
+ return functor; \
+ } \
+ \
+ \
+ FUNCTOR_TEMPLATE(1, returnvalue, numparams) \
+ inline FunctorConstMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams)* createFunctor(FUNCTOR_FUNCTION_RETURNVALUE(returnvalue) (T::*functionPointer)(FUNCTOR_FUNCTION_PARAMS(numparams)) const, T* object) \
+ { \
+ FunctorConstMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams)* functor = new FunctorConstMember##returnvalue##numparams FUNCTOR_TEMPLATE_CLASSES(1, returnvalue, numparams) (functionPointer); \
+ functor->setObject(object); \
+ return functor; \
}
More information about the Orxonox-commit
mailing list