SourcePro® API Reference Guide

 
Loading...
Searching...
No Matches
RWTFunctorR0Imp< SR > Class Template Reference

Deprecated. Abstract base class for the family of functor bodies that take no caller arguments at invocation time and return a value. More...

#include <rw/functor/RWTFunctorR0Imp.h>

Inherits RWTFunctorImpBase0< SR >.

Inherited by RWTFunctorR0GA1Imp< SR, DR, A1 >, RWTFunctorR0GA2Imp< SR, DR, A1, A2 >, RWTFunctorR0GA3Imp< SR, DR, A1, A2, A3 >, RWTFunctorR0GImp< SR, DR >, RWTFunctorR0MA1Imp< SR, Callee, DR, A1 >, RWTFunctorR0MA2Imp< SR, Callee, DR, A1, A2 >, RWTFunctorR0MA3Imp< SR, Callee, DR, A1, A2, A3 >, and RWTFunctorR0MImp< SR, Callee, DR >.

Detailed Description

template<class SR>
class RWTFunctorR0Imp< SR >
Deprecated
As of SourcePro 12.5, use RWTFunctor<R(As...)> instead.

A function object, or a functor, encapsulates a call to an associated global or member function. When a functor is invoked, it calls the associated function.

Class RWTFunctorR0Imp is the abstract base class for the family of functor bodies that take no caller arguments at invocation time and return a value.

Each derived class name appends either a G (for global) or an M (for member), to indicate whether it is invoked upon an object. Static member functions use the G version since there is no object associated with the call.

The class name may also append A1, A2, or A3, to indicate that it takes callee arguments at construction time. These arguments are stored and added to the caller argument at invocation time.

The eight concrete class names are:

  • RWTFunctorR0GImp<SR,DR>
    • No this object, no callee arguments
  • RWTFunctorR0GA1Imp<SR,DR,A1>
    • No this object, one callee argument
  • RWTFunctorR0GA2Imp<SR,DR,A1,A2>
    • No this object, two callee arguments
  • RWTFunctorR0GA3Imp<SR,DR,A1,A2,A3>
    • No this object, three callee arguments
  • RWTFunctorR0MImp<SR,Callee,DR>
    • Has this object, no callee arguments
  • RWTFunctorR0MA1Imp<SR,Callee,DR,A1>
    • Has this object, and one callee argument
  • RWTFunctorR0MA2Imp<SR,Callee,DR,A1,A2>
    • Has this object, and two callee arguments
  • RWTFunctorR0MA3Imp<SR,Callee,DR,A1,A2,A3>
    • Has this object, and three callee arguments

These concrete classes are templatized on the signature of the function that is encapsulated, as well as on the signature of the functor invocation.

The template parameters describe the invocation signature of the functor and the function call it encapsulates. These parameters are:

  • SR      The return type of the functor
  • Callee  The class type that declares a member function
  • DR      The return type of the function
  • A1      The type of the first client data argument
  • A2      The type of the second client data argument
  • A3      The type of the third client data argument

The make() function is the only member of these functor classes that is intended to be accessed directly; it is often called through one of the rwtMakeFunctorR0() convenience mechanisms. All other members must be accessed through an RWTFunctorR0 handle.

Example
#include <rw/functor/RWTFunctorR0GA1Imp.h>
float foo(int);
int main(void) {
// Create a functor that calls foo(7):
RWTFunctorR0GA1Imp<float, float, int>::make(foo, 7);
// Invoke Functor
float result = func();
return 0;
}
Deprecated. A functor that is invoked without any arguments and whose invocation returns a value.
Definition RWTFunctorR0.h:134
See also
rwtMakeFunctorR0(), RWTFunctorR0

Copyright © 2024 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.