RWTFunctorR1 RWHandleBase
#include <rw/functor/functorR1.h>
RWTFunctorR1<SR,S1> represents the group of functors that are invoked without any arguments, and whose invocation returns no value.
A function object, or a functor, is an object that encapsulates a call to an associated global or member function. When a functor is invoked, it calls the associated function.
Instances of RWTFunctorR1 act as handles to functor implementations or bodies. Such implementations are created by using either the rwtMakeFunctorR1() global functions or macros. Each of these methods creates a new body instance, and returns the handle to that instance. See the example below.
Note that although an instance of this class is invoked with one argument, the encapsulated function may have more arguments.
The additional arguments that will be passed to the encapsulated function are provided to the functor at the time of creation. They are stored within the functor object, and are retrieved at the time of invocation.
#include <rw/functor/functorR1.h // A function to be encapsulated in a functor. int flag=0; int setFlag(short f){ return flag=f; } int main () { // Create a new handle (functor) and assign a new body to it. RWTFunctorR1 functor = rwtMakeFunctorR1((int(*short))0, setFlag); // Invoking the functor with '32' will set the global flag to // 32 and return the value '32' int new_value = functor(32); return 0; }
typedef S1 S1Type;
The type of the first caller argument.
typedef SR (*CallerSignature)(S1);
The signature of the functor invocation.
typedef SR SRType;
The type of the functor's return value.
RWTFunctorR1(void);
Constructs an empty, invalid, handle instance. To create a viable handle, use the rwtMakeFunctor1() global functions or macros.
RWTFunctorR1(RWStaticCtor);
Constructs a global static handle instance. Constructor will not reset any values that may have been set in invocations prior to the constructor call.
RWTFunctorR1(const RWTFunctorR1<SR,S1>& second);
Copy constructor. Binds a new handle instance to the functor body instance, if any, associated with the second handle instance.
RWTFunctorR1<SR,S1>& operator=(const RWTFunctorR1<SR,S1>& second);
Assignment operator. Detaches this handle instance from any functor body instance it currently references, and binds it to the functor body instance, if any, associated with the second handle instance.
SR operator()(S1 s1) const;
Invokes the functor, calling the encapsulated function. Throws an RWTHRInvalidPointer if the handle has no associated body.
©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.