Forward declaration.

Synopsis

Declared in <bslmf_invokeresult.h>

template<
    class t_VOID_TYPE,
    bool t_ARG_DERIVES_FROM_CLASS,
    bool t_ARG_IS_REFERENCE_WRAPPER,
    class t_FN,
    class t_ARGTYPE>
struct InvokeResult_MemObjPtrImpDispatch;

Specializations

Name

Description

InvokeResult_MemObjPtrImpDispatch<bslmf::VoidType<decltype*InvokeResult_ImpUtils::myDeclval<t_ARGTYPE>(.* InvokeResult_ImpUtils::myDeclval<t_FN>())>::type, false, false, t_FN, t_ARGTYPE>

Implementation of invoke_result<t_FN, t_ARGTYPE>. This specialization is instantiated in C++11 and later when t_FN is a pointer‐to‐member‐object type, t_ARGTYPE is neither a class type that derives from the class type of t_FN nor a specialization of bsl::reference_wrapper, and the INVOKE(fn, arg) expression is well‐formed given fn is an object of the specified t_FN type and arg is an object of the specified t_ARGTYPE type. The INVOKE(fn, arg) expression in this case is (*arg).*fn.

InvokeResult_MemObjPtrImpDispatch<bslmf::VoidType<decltype(InvokeResult_ImpUtils::myDeclval<t_ARGTYPE>().* InvokeResult_ImpUtils::myDeclval<t_FN>())>::type, true, false, t_FN, t_ARGTYPE>

Implementation of invoke_result<t_FN, t_ARGTYPE>. This specialization is instantiated in C++11 and later when t_FN is a pointer‐to‐member‐object type, t_ARGTYPE is a class type that derives from the class type of t_FN, and the INVOKE(fn, arg) expression is well‐formed given fn is an object of the specified t_FN type and arg is an object of the specified t_ARGTYPE type. The INVOKE(fn, arg) expression in this case is arg1.*fn.

InvokeResult_MemObjPtrImpDispatch<bslmf::VoidType<decltype(InvokeResult_ImpUtils::myDeclval<t_ARGTYPE>().get().* InvokeResult_ImpUtils::myDeclval<t_FN>())>::type, false, true, t_FN, t_ARGTYPE>

Implementation of invoke_result<t_FN, t_ARGTYPE>. This specialization is instantiated in C++11 and later when t_FN is a pointer‐to‐member‐object type, t_ARGTYPE is a specialization of bsl::reference_wrapper, and the INVOKE(fn, arg) expression is well‐formed given fn is an object of the specified t_FN type and arg is an object of the specified t_ARGTYPE type. The INVOKE(fn, arg) expression in this case is arg.get().*fn.

Derived Classes

Name

Description

InvokeResult_MemObjPtrImp<t_FN, t_ARGTYPE>

Implementation of invoke_result<t_FN, t_ARGTYPES...>. This specialization is instantiated in C++11 and later when t_FN is a pointer‐to‐member‐object type and the t_ARGTYPES... pack contains exactly 1 type.

Created with MrDocs