|
BDE 4.14.0 Production release
|
#include <bdlf_bind.h>
This struct provides various traits of the functor type t_FUNC documented below. If t_RET is bslmf::Nil, then the return type is inferred by using either bslmf::FunctionPointerTraits, bslmf::MemberFunctionPointerTraits, or typename t_FUNC::result_type as appropriate.
The table below gives a summary of the values set by the specializations of Bind_FuncTraitsImp, where X represents a class type and T represents the return type (given explicitly by t_RET, or deduced by the nested ResultType of X or of the appropriate traits when t_RET is specified as bslmf::Nil).
t_RET t_FUNC IS _FN IS_FNP IS_MEM IS_EXPLICIT OFFSET PTR_SEM
T T(...) 1 0 0 1^ 0 0 T T(*)(...) 0 1 0 1^ 0 0 T T(X::*)(...) 0 0 1 1 1 0 T X 0 0 0 0 A B T X* 0 0 0 0 A 1 bslmf::Nil T(...) 1 0 0 1^ 0 0 bslmf::Nil T(*)(..) 0 1 0 1^ 0 0 bslmf::Nil T(X::*)(...) 0 0 1 1 1 0 bslmf::Nil X 0 0 0 0 A B bslmf::Nil X* 0 0 0 0 A 1
A: undefined, since unused by Bin_Impl, which is used for non-explicit binders. B: as determined by the value of bslalg_TypeTraits<X, bslalg::TypeTraitHasPointerSemantics>. ^: in the (rare) case where the t_FUNC type has an ellipsis argument, the k_IS_EXPLICIT will be set to 0. Note that we only support the ellipsis in non-member functions.