Forward declaration.
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;
| 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. |
| 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. |