Implementation traits for binder function‐object types.

Synopsis

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;

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

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.

Derived Classes

Name

Description

Bind_FuncTraits

This struct provides traits of the binder functor type t_FUNC.

Created with MrDocs