|
| FunctorTemplate (typename detail::FunctionType< F, R, O, isconst, Params... >::Type functionPointer, O *object=nullptr) |
| Constructor: Initializes the base class. More...
|
|
virtual FunctorPtr | clone () override |
| Creates a new instance of Functor with the same values like this (used instead of a copy-constructor) More...
|
|
virtual void | evaluateArgument (unsigned int index, MultiType &argument) const override |
| Converts a given argument to the type of the parameter with given index (the first parameter has index 0). More...
|
|
virtual const std::type_info & | getFullIdentifier () const override |
| Returns the full identifier of the function-pointer which is defined as typeid(F), where F is the type of the stored function-pointer. Used to compare functors. More...
|
|
virtual const std::type_info & | getHeaderIdentifier () const override |
| Returns an identifier of the header of the function (doesn't include the function's class). Used to compare functors. More...
|
|
virtual const std::type_info & | getHeaderIdentifier (unsigned int params) const override |
| Returns an identifier of the header of the function (doesn't include the function's class), but regards only the first params parameters. Used to compare functions if an Executor provides default-values for the other parameters. More...
|
|
virtual unsigned int | getParamCount () const override |
| Returns the number of parameters of the function. More...
|
|
virtual std::string | getTypenameParam (unsigned int index) const override |
| Returns the type-name of the parameter with given index (the first parameter has index 0). More...
|
|
virtual std::string | getTypenameReturnvalue () const override |
| Returns the type-name of the return-value. More...
|
|
virtual bool | hasReturnvalue () const override |
| Returns true if the function has a return-value. More...
|
|
virtual MultiType | operator() (O *object, const MultiType ¶m1=MultiType::Null, const MultiType ¶m2=MultiType::Null, const MultiType ¶m3=MultiType::Null, const MultiType ¶m4=MultiType::Null, const MultiType ¶m5=MultiType::Null) override |
| Calls the function-pointer with up to five arguments and an object. In case of a static-function, the object can be nullptr. More...
|
|
| FunctorPointer (detail::FunctionType< F, R, O, isconst, Params... >::TypefunctionPointer, O *object=nullptr) |
| Constructor: Initializes the base class and stores the function-pointer. More...
|
|
detail::FunctionType< F, R, O, isconst, Params... >::Type | getFunction () const |
| Returns the function-pointer. More...
|
|
void | setFunction (detail::FunctionType< F, R, O, isconst, Params... >::TypefunctionPointer) |
| Changes the function-pointer. More...
|
|
| FunctorMember (O *object=nullptr) |
| Constructor: Stores the object-pointer. More...
|
|
virtual | ~FunctorMember () |
|
O * | getObject () const |
| Returns the object-pointer. More...
|
|
virtual void * | getRawObjectPointer () const override |
| Returns the object-pointer. More...
|
|
virtual Functor::Type | getType () const override |
| Returns the type of the function: static or member. More...
|
|
virtual MultiType | operator() (const MultiType ¶m1=MultiType::Null, const MultiType ¶m2=MultiType::Null, const MultiType ¶m3=MultiType::Null, const MultiType ¶m4=MultiType::Null, const MultiType ¶m5=MultiType::Null) override |
| Calls the function-pointer with up to five arguments. In case of a member-function, the assigned object-pointer is used to call the function. More...
|
|
void | setObject (O *object) |
| Assigns an object-pointer to the functor which is used to execute a member-function. More...
|
|
virtual void | setRawObjectPointer (void *object) override |
| Assigns an object-pointer to the functor which is used to execute a member-function. More...
|
|
virtual void | setSafeMode (bool bSafeMode) override |
| Enables or disables the safe mode which causes the functor to change the object pointer to nullptr if the object is deleted (only member functors). More...
|
|
virtual | ~Functor ()=default |
|
template<class F, class R, class O, bool isconst, class... Params>
class orxonox::FunctorTemplate< F, R, O, isconst, Params >
FunctorTemplate is a child class of FunctorPointer and implements all functions that need to know the exact types of the parameters, return-value, and class.
- Parameters
-
F | the type of the function-object (or void if a function-pointer is used). |
R | The type of the return-value of the function |
O | The class of the function |
isconst | True if the function is a const member-function |
Params | The types of the parameters |
This template has many parameters and is usually not used directly. It is created by createFunctor(), but only the base-classes Functor, FunctorMember, and FunctorPointer are used directly. It implements all the virtual functions that are declared by its base classes.
All template arguments can be void.