This template, passed the type of one of the bound arguments to a function object, yields: * If the specified t_BOUND_TYPE is a place holder, a mask with the bit at the index of the place holder set. * If the specified t_BOUND_TYPE is a Bind or BindWrapper, a mask with bit 24 set. * Zero otherwise.

Synopsis

Declared in <bdlf_bind.h>

template<class t_BOUND_TYPE>
struct Bind_PlaceHolderMask;

Static Data Members

Name

Description

k_VAL

Placeholder mask value of zero for non‐placeholder bound types.

Specializations

Name

Description

Bind_PlaceHolderMask<PlaceHolder<INDEX>>

Bind_PlaceHolderMask<Bind<t_RET, t_FUNC, t_BOUND_TUPLE>>

This specialization of Bind_PlaceHolderMask defines a mask for a Bind object passed recursively as a bound argument. The value is not important, as long as it is out of range. Note that 1 << 30 would be equally valid, but can lead to an overflow in constant expression with Bind_CalcParameterMask::k_PARAM_MASK2 below (obtained by adding the masks of the bound arguments together) when there are more than 3 nested binders (this is unfortunately an error with the GNU compiler).

Bind_PlaceHolderMask<BindWrapper<t_RET, t_FUNC, t_BOUND_TUPLE>>

This specialization of Bind_PlaceHolderMask defines a mask for a BindWrapper object passed recursively as a bound argument. The value is not important, as long as it is out of range. This makes sure that a binder with a nested BindWrapper object is treated as non‐explicit, in the same way as if the nested binder was of type Bind.

Created with MrDocs