This component-private struct template provides a partial specialization of Function_InvokerUtil_IsFuncInvocableImp for FUNC types for which bsl::invoke_result<T, FWD_ARGS...> provides a nested type typedef, where T is the result of stripping a nothrow-movable wrapper from FUNC, if present, and adding an lvalue reference, and where FWD_ARGS... are the types that result from forwarding objects of respective ARGS... types.
Declared in <bslstl_function_invokerutil.h>
template<
class RET,
class FUNC,
class... ARGS>
struct Function_InvokerUtil_IsFuncInvocableImp<bslmf::VoidType<Function_InvokerUtil_ResultType<FUNC, ARGS...>::type>::type, RET, FUNC, ARGS...>
: bsl::conditional<bsl::is_void<RET>::value, bsl::true_type, Function_InvokerUtil_IsExplicitlyConvertible<Function_InvokerUtil_ResultType<FUNC, ARGS...>::type, RET>>::type
Specifically, T is bslalg::NothrowMovableUtil::UnwrappedType<FUNC>::type&, and FWD_ARGS... are the types of respective bslmf::ForwardingTypeUtil<ARGS...>::forwardToTarget(args...) expressions where args... are lvalue expressions of respective bslmf::ForwardingType<ARGS>::Type... types. See the class-level documentation of the primary Function_InvokerUtil::IsFuncInvocable declaration for more information about the behavior of this struct template.
| Name | Description |
|---|---|
bsl::conditional<bsl::is_void<RET>::value, bsl::true_type, Function_InvokerUtil_IsExplicitlyConvertible<Function_InvokerUtil_ResultType<FUNC, ARGS...>::type, RET>>::type |