[#BloombergLP-bdlf-Bind_FuncTraits]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlf.adoc[bdlf]::Bind&lowbar;FuncTraits
:relfileprefix: ../../
:mrdocs:

This `struct` provides traits of the binder functor type `t&lowbar;FUNC`&period;

== Synopsis

Declared in `&lt;bdlf&lowbar;bind&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;RET,
    class t&lowbar;FUNC&gt;
struct Bind&lowbar;FuncTraits
    : xref:BloombergLP/bdlf/Bind_FuncTraitsImp-05.adoc[Bind&lowbar;FuncTraitsImp&lt;t&lowbar;RET, t&lowbar;FUNC, (int)bslmf&colon;&colon;IsFunctionPointer&lt;t&lowbar;FUNC &ast;&gt;&colon;&colon;value, (int)bslmf&colon;&colon;IsFunctionPointer&lt;t&lowbar;FUNC&gt;&colon;&colon;value, (int)bslmf&colon;&colon;IsMemberFunctionPointer&lt;t&lowbar;FUNC&gt;&colon;&colon;value&gt;]
----

== Description

If `t&lowbar;RET` is `bslmf&colon;&colon;Nil`, then the return type is inferred by using either `bslmf&colon;&colon;FunctionPointerTraits`, `bslmf&colon;&colon;MemberFunctionPointerTraits`, or `t&lowbar;FUNC&colon;&colon;ResultType` &sol; `t&lowbar;FUNC&colon;&colon;result&lowbar;type`&period; Otherwise the return type is `t&lowbar;RET`&period; Additional nested types and enumerations describe whether binding is explicit, whether the functor is a member function, and whether it has pointer semantics&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdlf/Bind_FuncTraitsImp-05.adoc[Bind&lowbar;FuncTraitsImp&lt;t&lowbar;RET, t&lowbar;FUNC, (int)bslmf&colon;&colon;IsFunctionPointer&lt;t&lowbar;FUNC &ast;&gt;&colon;&colon;value, (int)bslmf&colon;&colon;IsFunctionPointer&lt;t&lowbar;FUNC&gt;&colon;&colon;value, (int)bslmf&colon;&colon;IsMemberFunctionPointer&lt;t&lowbar;FUNC&gt;&colon;&colon;value&gt;]`
| Implementation traits for binder function&hyphen;object types&period;
|===


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