BloombergLP::bslmf::InvokeResult_FuncPtrImp<bslmf::VoidType<decltype(InvokeResult_ImpUtils::myDeclval<t_FN>()( InvokeResult_ImpUtils::myDeclval<t_ARGTYPES>()...))>::type, t_FN, t_ARGTYPES...>

Implementation of invoke_result<t_FN, t_ARGTYPES...>. This specialization is instantiated in C++11 and later when t_FN is a pointer-to-function type, and the INVOKE(fn, args...) expression is well-formed given fn is an object of the specified t_FN type and args... are objects of the specified t_ARGTYPES... types. The INVOKE(fn, args...) expression in this case is fn(args...).

Synopsis

Declared in <bslmf_invokeresult.h>

template<
    class t_FN,
    class... t_ARGTYPES>
struct InvokeResult_FuncPtrImp<bslmf::VoidType<decltype(InvokeResult_ImpUtils::myDeclval<t_FN>()(
                    InvokeResult_ImpUtils::myDeclval<t_ARGTYPES>()...))>::type, t_FN, t_ARGTYPES...>
    : /* implementation-defined */

Base Classes

NameDescription
/* implementation-defined */Utility metaprogramming functions inherited by other metaprogramming classes.

Types

NameDescription
AnyLvalue Type convertible from any lvalue type. Used for overload resolution in metafunctions.
AnyRvalue Type convertible from any rvalue type. Used for overload resolution in metafunctions.

Type Aliases

NameDescription
type For C++11 and later, the type of result of the INVOKE(fn, args...) expression where fn is an object of the specified t_FN type, and args... are objects of the specified t_ARGTYPES... types. The INVOKE(fn, args...) expression in this case is is fn(args...).

Static Member Functions

NameDescription
checkConst checkConst overloads
checkLvalue checkLvalue overloads
checkVolatile checkVolatile overloads
myDeclval Return a reference to the specified t_SOME_TYPE template parameter type; if t_SOME_TYPE is an rvalue, then the returned reference is an rvalue reference. This function is declared but not defined and is intended to be called in an unevaluated context. Because there is no definition, the available constructors for t_SOME_TYPE are irrelevant.
uncv uncv overloads
unpoint unpoint overloads