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.
Declared in <bdlf_bind.h>
template<class t_BOUND_TYPE>
struct Bind_PlaceHolderMask;
| Name | Description |
|---|---|
k_VAL | Placeholder mask value of zero for non-placeholder bound types. |
| 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. |