[#BloombergLP-bslstl-Function_InvokerUtil]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::Function&lowbar;InvokerUtil
:relfileprefix: ../../
:mrdocs:

Namespace for looking up an invoker for a given callable type&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;function&lowbar;invokerutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct Function&lowbar;InvokerUtil;
----

== Description

This struct is a namespace containing a single function template, `invokerForFunc`, that returns a pointer to a function that is used to invoke a callable object of a particular type&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Function_InvokerUtil/IsFuncInvocable.adoc[`IsFuncInvocable`] 
| Boolean metafunction for invocability of `FUNC` under `PROTOTYPE`&period;
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Function_InvokerUtil/GenericInvoker.adoc[`GenericInvoker`] 
| Generic function pointer&period; This type is as close as we can get to `void &ast;` for function pointers&period;
|===


== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Function_InvokerUtil/_04enum.adoc[`Unnamed enum`] 
| Enumeration of the different types of callable objects&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Function_InvokerUtil/invokerForFunc-03.adoc[`invokerForFunc`] 
| `invokerForFunc` overloads
| xref:BloombergLP/bslstl/Function_InvokerUtil/throwBadFunctionCall.adoc[`throwBadFunctionCall`]  [.small]#[noreturn]#
| Throw `bsl&colon;&colon;bad&lowbar;function&lowbar;call`, or abort if exceptions are disabled&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
