[#BloombergLP-bslma-UsesBslmaAllocator_Sniff-0d]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::UsesBslmaAllocator&lowbar;Sniff
:relfileprefix: ../../
:mrdocs:

This class has a constant `value` that is `true` if the specified `TYPE` is implicitly convertible from `bslma&colon;&colon;Allocator &ast;`&period; It thus &quot;sniffs&quot; whether `UsesBslmaAllocator&lt;TYPE&gt;&colon;&colon;value` should be `true`&period; If the specified `BYPASS` parameter is `true`, the conversion check is skipped and `value` is hard&hyphen;coded to `true`&period; The bypass is needed because the xlC compiler will sometimes instantiate the copy constructor for `TYPE`, leading to compilation errors if `TYPE` is not copy constructible&period; This automatic sniffing is deprecated&semi; having a type implicitly convertible from an allocator pointer is discouraged&period;

== Synopsis

Declared in `&lt;bslma&lowbar;usesbslmaallocator&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class TYPE,
    bool BYPASS&gt;
struct UsesBslmaAllocator&lowbar;Sniff;
----

== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslma/UsesBslmaAllocator_Sniff-0d/_04enum.adoc[`Unnamed enum`] 
| Public constants&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslma/UsesBslmaAllocator_Sniff-0e.adoc[`UsesBslmaAllocator&lowbar;Sniff&lt;TYPE, true&gt;`] 
| Specialization of `UsesBslmaAllocator&lowbar;Sniff` for which `BYPASS` is `true`&period;
|===



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