Implementation traits for binder function-object types.
Declared in <bdlf_bind.h>
template<
class t_RET,
class t_FUNC,
int IS_FUNCTION,
int IS_FUNCTION_POINTER,
int IS_MEMBER_FUNCTION_POINTER>
struct Bind_FuncTraitsImp;
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.
| Name | Description |
|---|---|
Bind_FuncTraitsImp<bslmf::Nil, t_FUNC, 0, 0, 0> | Function traits for by-value functors without an explicit return type. |
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. |
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. |
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. |
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. |
Bind_FuncTraitsImp<bslmf::Nil, t_FUNC*, 0, 0, 0> | Function traits for pointer functors without an explicit return type. |
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. |
Bind_FuncTraitsImp<t_RET, t_FUNC, 0, 0, 0> | Function traits for function objects that are passed by value with explicit return type specification. |
Bind_FuncTraitsImp<t_RET, t_FUNC, 0, 0, 1> | Function traits for member function pointers, with explicit return type specification. |
Bind_FuncTraitsImp<t_RET, t_FUNC, 0, 1, 0> | Function traits for non-member function pointers, with explicit return type specification. |
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. |
Bind_FuncTraitsImp<t_RET, t_FUNC*, 0, 0, 0> | Function traits for objects passed by pointer with explicit return type. |
| Name | Description |
|---|---|
Bind_FuncTraits | This struct provides traits of the binder functor type t_FUNC. |