Go to the documentation of this file.
12 #ifndef ECL_UTILITIES_FUNCTION_OBJECTS_HPP_
13 #define ECL_UTILITIES_FUNCTION_OBJECTS_HPP_
20 #include "../utilities/references.hpp"
45 template <
typename R =
void>
46 class NullaryFunction {
68 template <
typename A,
typename R =
void>
96 template <
typename A1,
typename A2,
typename R =
void>
125 template <
typename R =
void>
126 class NullaryFreeFunction :
public NullaryFunction<R>
160 class NullaryFreeFunction<void> :
public NullaryFunction<void>
199 template <
typename A,
typename R =
void>
200 class UnaryFreeFunction :
public UnaryFunction<A,R>
237 template <
typename A>
238 class UnaryFreeFunction<A,void> :
public UnaryFunction<A,void>
291 template <
typename A,
typename R =
void>
328 template <
typename A>
329 class BoundUnaryFreeFunction<A,void> :
public NullaryFunction<void>
390 template <
typename C,
typename R =
void>
431 template <
typename C>
486 template <
typename C,
typename A,
typename R =
void>
526 template <
typename C,
typename A>
585 template <
typename C,
typename R =
void>
627 template <
typename C>
684 template <
typename C,
typename A,
typename R =
void>
743 template <
typename C,
typename A,
typename R =
void>
806 template <
typename C,
typename A,
typename B,
typename R =
void>
854 template <
typename FunctionObject,
typename Result =
void>
893 template <
typename FunctionObject>
894 class NullaryFunctionCopy<FunctionObject,void> :
public NullaryFunction<void>
934 template <
typename FunctionObject,
typename Result =
void>
935 class NullaryFunctionReference :
public NullaryFunction<Result>
974 template <
typename FunctionObject>
975 class NullaryFunctionReference< FunctionObject, void > :
public NullaryFunction<void>
1015 template <
typename FunctionObject,
typename T,
typename Result =
void>
1016 class UnaryFunctionCopy :
public UnaryFunction<T, Result>
1054 template <
typename FunctionObject,
typename T>
1055 class UnaryFunctionCopy<FunctionObject,T,void> :
public UnaryFunction<T, void>
1095 template <
typename FunctionObject,
typename T,
typename Result =
void>
1096 class UnaryFunctionReference :
public UnaryFunction<T, Result>
1135 template <
typename ReferenceWrapper,
typename T>
1136 class UnaryFunctionReference< ReferenceWrapper, T, void > :
public UnaryFunction<T,void>
1179 template <
typename R>
1197 template <
typename A,
typename R>
1217 template <
typename A,
typename R,
typename I>
1219 return BoundUnaryFreeFunction<A,R>(
function, a );
1238 template <
typename A,
typename R,
typename I>
1240 return BoundUnaryFreeFunction<A,R>(
function, a );
1256 template <
typename C,
typename R>
1258 return NullaryMemberFunction<C,R>(
function );
1275 template <
typename C,
typename R>
1277 return BoundNullaryMemberFunction<C,R>(
function, c );
1294 template <
typename C,
typename A,
typename R>
1296 return UnaryMemberFunction<C,A,R>(
function );
1316 template <
typename C,
typename A,
typename R>
1318 return PartiallyBoundUnaryMemberFunction<C,A,R>(
function, c);
1338 template <
typename C,
typename A,
typename R,
typename I>
1344 return BoundUnaryMemberFunction<C,A,R>(
function, c, a );
1365 template <
typename C,
typename A,
typename R,
typename I>
1369 return BoundUnaryMemberFunction<C,A,R>(
function, c, a );
NullaryFreeFunction(R(*function)())
Nullary function object constructor for global/static functions with no args.
Nullary function object for bound unary global/static functions.
UnaryFunctionCopy(const FunctionObject &f_o)
UnaryFunction child constructor for unary function objects.
void(C::* member_function)(A, B)
#define ecl_compile_time_concept_check(Model)
void(C::* member_function)(A)
virtual ~BoundUnaryMemberFunction()
R operator()()
This ensures any children objects are deleted correctly.
Unary function object for global/static functions.
R operator()()
This ensures any children objects are deleted correctly.
virtual ~BoundNullaryMemberFunction()
BoundUnaryMemberFunction(R(C::*function)(A), C &class_object, A a)
Binds a unary member function and creates a nullary function object.
FunctionObject function_object
virtual ~PartiallyBoundBinaryMemberFunction()
UnaryMemberFunction(R(C::*function)(A))
Binary function object constructor for unary member functions.
PartiallyBoundBinaryMemberFunction(R(C::*function)(A, B), C &class_object)
Binds a binary member function and creates a binary function object.
Virtual interface definition for unary function objects.
virtual ~NullaryFunction()
FunctionObject & function_object
R(C::* member_function)(A)
Nullary function object for void global/static functions.
UnaryFunctionReference(const ReferenceWrapper< FunctionObject > &wrapper)
Creates a UnaryFunction descendant from a reference wrapper.
Binary function object for unary member functions.
FunctionObject & function_object
Result operator()(T t)
This ensures any children objects are deleted correctly.
virtual ~NullaryFunctionReference()
NullaryMemberFunction(R(C::*function)())
Unary function object constructor for member functions without arguments.
virtual ~UnaryFunctionCopy()
BoundUnaryFreeFunction(R(*function)(A), A a)
Binds a unary function and creates a nullary function object.
R result_type
The result type.
FunctionObject function_object
Virtual interface definition for nullary function objects.
UnaryFreeFunction(R(*function)(A))
Unary function object constructor for global/static functions.
virtual ~BoundUnaryFreeFunction()
Virtual interface definition for binary function objects.
NullaryFunctionReference(const ReferenceWrapper< FunctionObject > &wrapper)
Creates a NullaryFunction descendant from a reference wrapper.
R(C::* member_function)()
Result operator()()
This ensures any children objects are deleted correctly.
Nullary function object for bound nullary member functions.
BoundNullaryMemberFunction(R(C::*function)(), C &class_object)
Binds a unary member function and creates a nullary function object.
virtual ~NullaryFunctionCopy()
A argument_type
The first argument type.
R operator()(A a, B b)
This ensures any children objects are deleted correctly.
R operator()(C &class_object)
This ensures any children objects are deleted correctly.
R operator()(C &class_object, A a)
This ensures any children objects are deleted correctly.
void(C::* member_function)(A)
R operator()()
This ensures any children objects are deleted correctly.
R result_type
The result type.
R operator()(A a)
This ensures any children objects are deleted correctly.
virtual ~NullaryFreeFunction()
virtual ~PartiallyBoundUnaryMemberFunction()
virtual result_type operator()(argument_type arg)=0
Virtual function call required by unary function objects.
virtual ~UnaryFunctionReference()
R(C::* member_function)()
R operator()(A a)
This ensures any children objects are deleted correctly.
virtual ~NullaryMemberFunction()
Create a NullaryFunction object composited from an existing function object.
R result_type
The result type.
virtual ~UnaryMemberFunction()
Unary function object for member functions without arguments.
virtual result_type operator()(first_argument_type arg1, second_argument_type arg2)=0
Virtual function call required by binary function objects.
virtual ~UnaryFreeFunction()
PartiallyBoundUnaryMemberFunction(R(C::*function)(A), C &class_object)
Binds a unary member function and creates a nullary function object.
Result operator()()
This ensures any children objects are deleted correctly.
Result operator()(T t)
This ensures any children objects are deleted correctly.
A2 second_argument_type
The second argument type.
Nullary function object for bound unary member functions.
R operator()()
This ensures any children objects are deleted correctly.
A1 first_argument_type
The first argument type.
Embedded control libraries.
Binary function object for partially bound binary member functions.
NullaryFunctionCopy(const FunctionObject &f_o)
NullaryFunction child constructor for nullary function objects.
NullaryFreeFunction< R > generateFunctionObject(R(*function)())
Generate a nullary function object from a void global/static function.
Unary function object for partially bound unary member functions.
virtual ~BinaryFunction()
virtual result_type operator()()=0
Virtual function call required by nullary function objects.
ecl_utilities
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:16:32