BloombergLP::bslstl::Function_InvokerUtil_Dispatch

Specializations of this class contain a static invoke method that can invoke a callable object of type FUNC, converting each argument in PROTOTYPE (a function prototype) to the corresponding argument in the invocation of the callable object and converting the return value of the invocation to the return type of PROTOTYPE. The INVOCATION_TYPE specifies the category of callable object: pointer to function, pointer to member function, pointer to data member, inplace functor (i.e., one that qualifies for the small-object optimization) and out-of-place functor (i.e., one that is not stored in the small-object buffer).

Synopsis

Declared in <bslstl_function_invokerutil.h>

template<
    int INVOCATION_TYPE,
    class PROTOTYPE,
    class FUNC>
struct Function_InvokerUtil_Dispatch;

Specializations

NameDescription
Function_InvokerUtil_Dispatch<Function_InvokerUtil::e_FunctionPtr, RET(ARGS...), FUNC> Specialization of dispatcher for pointer-to-function objects.
Function_InvokerUtil_Dispatch<Function_InvokerUtil::e_InplaceFunctor, RET(ARGS...), FUNC> Specialization of dispatcher functor class objects that are suitable for the small-object optimization and are thus allocated inplace.
Function_InvokerUtil_Dispatch<Function_InvokerUtil::e_OutofplaceFunctor, RET(ARGS...), FUNC> Specialization of dispatcher functor class objects that are not suitable for the small-object optimization and are thus allocated out of place.
Function_InvokerUtil_Dispatch<Function_InvokerUtil::e_MemDataPtr, RET(ARG0), MEMBER_TYPECLASS_TYPE::*> Specialization of dispatcher for pointer to data member objects.
Function_InvokerUtil_Dispatch<Function_InvokerUtil::e_MemFunctionPtr, RET(ARG0, ARGS...), FUNC> Specialization of dispatcher for pointer to member function objects.