[#BloombergLP-bdlf-Bind_PlaceHolderMask-05]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlf.adoc[bdlf]::Bind&lowbar;PlaceHolderMask
:relfileprefix: ../../
:mrdocs:

This template, passed the type of one of the bound arguments to a function object, yields&colon; &ast; If the specified `t&lowbar;BOUND&lowbar;TYPE` is a place holder, a mask with the bit at the index of the place holder set&period; &ast; If the specified `t&lowbar;BOUND&lowbar;TYPE` is a `Bind` or `BindWrapper`, a mask with bit 24 set&period; &ast; Zero otherwise&period;

== Synopsis

Declared in `&lt;bdlf&lowbar;bind&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;BOUND&lowbar;TYPE&gt;
struct Bind&lowbar;PlaceHolderMask;
----

== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlf/Bind_PlaceHolderMask-05/k_VAL.adoc[`k&lowbar;VAL`] 
| Placeholder mask value of zero for non&hyphen;placeholder bound types&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlf/Bind_PlaceHolderMask-0e.adoc[`Bind&lowbar;PlaceHolderMask&lt;PlaceHolder&lt;INDEX&gt;&gt;`] 
| 
| xref:BloombergLP/bdlf/Bind_PlaceHolderMask-01.adoc[`Bind&lowbar;PlaceHolderMask&lt;Bind&lt;t&lowbar;RET, t&lowbar;FUNC, t&lowbar;BOUND&lowbar;TUPLE&gt;&gt;`] 
| This specialization of `Bind&lowbar;PlaceHolderMask` defines a mask for a `Bind` object passed recursively as a bound argument&period; The value is not important, as long as it is out of range&period; Note that `1 &lt;&lt; 30` would be equally valid, but can lead to an overflow in constant expression with `Bind&lowbar;CalcParameterMask&colon;&colon;k&lowbar;PARAM&lowbar;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)&period;
| xref:BloombergLP/bdlf/Bind_PlaceHolderMask-0b.adoc[`Bind&lowbar;PlaceHolderMask&lt;BindWrapper&lt;t&lowbar;RET, t&lowbar;FUNC, t&lowbar;BOUND&lowbar;TUPLE&gt;&gt;`] 
| This specialization of `Bind&lowbar;PlaceHolderMask` defines a mask for a `BindWrapper` object passed recursively as a bound argument&period; The value is not important, as long as it is out of range&period; This makes sure that a binder with a nested `BindWrapper` object is treated as non&hyphen;explicit, in the same way as if the nested binder was of type `Bind`&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
