[#BloombergLP-bdlf-Bind_FuncTraitsImp-05] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlf.adoc[bdlf]::Bind_FuncTraitsImp :relfileprefix: ../../ :mrdocs: Implementation traits for binder function‐object types. == Synopsis Declared in `<bdlf_bind.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_RET, class t_FUNC, int IS_FUNCTION, int IS_FUNCTION_POINTER, int IS_MEMBER_FUNCTION_POINTER> struct Bind_FuncTraitsImp; ---- == Description This struct provides a mechanism for inferring various traits of the function object type `t_FUNC`. The return type is given by `t_RET` unless it is `bslmf::Nil`, in which case it is inferred from `t_FUNC`. The `IS_FUNCTION`, `IS_FUNCTION_POINTER`, and `IS_MEMBER_FUNCTION_POINTER` template parameters select the appropriate specialization for a function type, a pointer to function type, or a pointer to member function type, respectively. Only specializations of this class should be used (given below). All specializations define the types and enumerations documented in `Bind_FuncTraits` below. == Specializations [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-088.adoc[`Bind_FuncTraitsImp<bslmf::Nil, t_FUNC, 0, 0, 0>`] | Function traits for by‐value functors without an explicit return type. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-0a.adoc[`Bind_FuncTraitsImp<bslmf::Nil, t_FUNC, 0, 0, 1>`] | Function traits for member function pointers. The result type is determined from the function pointer traits. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-086.adoc[`Bind_FuncTraitsImp<bslmf::Nil, t_FUNC, 0, 1, 0>`] | Function traits for non‐member function pointers. The result type is determined from the function pointer traits. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-048.adoc[`Bind_FuncTraitsImp<bslmf::Nil, t_FUNC, 1, 0, 0>`] | Function traits for non‐member function types (references or not, but not pointers to function). The result type is determined from the function pointer traits. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-0f2.adoc[`Bind_FuncTraitsImp<bslmf::Nil, bsl::function<PROTO>, 0, 0, 0>`] | Function traits for bsl::function objects that are passed by value. The result type is determined by `bsl::function<PROTO>::result_type`. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-0b.adoc[`Bind_FuncTraitsImp<bslmf::Nil, t_FUNC*, 0, 0, 0>`] | Function traits for pointer functors without an explicit return type. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-0e.adoc[`Bind_FuncTraitsImp<bslmf::Nil, bsl::function<PROTO>*, 0, 0, 0>`] | Function traits for objects passed by pointer with no explicit return type. The object is assumed to have a `ResultType` type definition. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-07.adoc[`Bind_FuncTraitsImp<t_RET, t_FUNC, 0, 0, 0>`] | Function traits for function objects that are passed by value with explicit return type specification. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-00.adoc[`Bind_FuncTraitsImp<t_RET, t_FUNC, 0, 0, 1>`] | Function traits for member function pointers, with explicit return type specification. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-0fc.adoc[`Bind_FuncTraitsImp<t_RET, t_FUNC, 0, 1, 0>`] | Function traits for non‐member function pointers, with explicit return type specification. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-047.adoc[`Bind_FuncTraitsImp<t_RET, t_FUNC, 1, 0, 0>`] | Function traits for non‐member function types (references or not, but not pointers to function), with explicit return type specification. | xref:BloombergLP/bdlf/Bind_FuncTraitsImp-09.adoc[`Bind_FuncTraitsImp<t_RET, t_FUNC*, 0, 0, 0>`] | Function traits for objects passed by pointer with explicit return type. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlf/Bind_FuncTraits.adoc[`Bind_FuncTraits`] | This `struct` provides traits of the binder functor type `t_FUNC`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#