[#BloombergLP-bslma-UsesBslmaAllocator_Sniff-0d] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::UsesBslmaAllocator_Sniff :relfileprefix: ../../ :mrdocs: This class has a constant `value` that is `true` if the specified `TYPE` is implicitly convertible from `bslma::Allocator *`. It thus "sniffs" whether `UsesBslmaAllocator<TYPE>::value` should be `true`. If the specified `BYPASS` parameter is `true`, the conversion check is skipped and `value` is hard‐coded to `true`. 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. This automatic sniffing is deprecated; having a type implicitly convertible from an allocator pointer is discouraged. == Synopsis Declared in `<bslma_usesbslmaallocator.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class TYPE, bool BYPASS> struct UsesBslmaAllocator_Sniff; ---- == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/UsesBslmaAllocator_Sniff-0d/_04enum.adoc[`Unnamed enum`] | Public constants. |=== == Specializations [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/UsesBslmaAllocator_Sniff-0e.adoc[`UsesBslmaAllocator_Sniff<TYPE, true>`] | Specialization of `UsesBslmaAllocator_Sniff` for which `BYPASS` is `true`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#