[#BloombergLP-bslma-AAModelIsSupported-06]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::AAModelIsSupported
:relfileprefix: ../../
:mrdocs:

Metafunction that is `true&lowbar;type` if `TYPE` supports AA model `MODEL`&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class TYPE,
    class MODEL&gt;
struct AAModelIsSupported
    : xref:bsl/false_type.adoc[bsl::false&lowbar;type]
----

== Description

Predicate metafunction that determines if the specified `TYPE` supports the specified `MODEL` AA model&period; It yields (i&period;e&period;, is derived from) `bsl&colon;true&lowbar;type` if type `TYPE` supports AA model `MODEL`&semi; otherwise it yields `false&lowbar;type`&period; `MODEL` Must be one of `AAModelNone`, `AAModelLegacy`, `AAModelBsl`, `AAModelPmr`, or `AAModelStl`&period; This metafunction can yield `true&lowbar;type` for more than one type `MODEL` type, e&period;g&period;, it will yield `true&lowbar;type` if `TYPE` is *bsl&hyphen;AA*, and `MODEL` is either `AAModelBsl` or `AAModelLegacy`, since `TYPE` can be constructed with either allocator type&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/false_type.adoc[bsl::false&lowbar;type]`
| Metafunction representing the boolean constant `false`&period;
|===

== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslma/AAModelIsSupported-01a.adoc[`AAModelIsSupported&lt;TYPE, AAModelBsl&gt;`] 
| Specialization of `AAModelIsSupported` for `MODEL &equals;&equals; AAModelBsl`, yielding `true&lowbar;type` if `TYPE&colon;&colon;allocator&lowbar;type` exists and is convertible from `bsl&colon;&colon;allocator&lt;char&gt;`&period;
| xref:BloombergLP/bslma/AAModelIsSupported-00.adoc[`AAModelIsSupported&lt;TYPE, AAModelLegacy&gt;`] 
| Specialization of `AAModelIsSupported` for the legacy&hyphen;AA model&period;
| xref:BloombergLP/bslma/AAModelIsSupported-04.adoc[`AAModelIsSupported&lt;TYPE, AAModelNone&gt;`] 
| Specialization of `AAModelIsSupported` for `MODEL &equals;&equals; AAModelNone`, always yielding `true&lowbar;type`&period;
| xref:BloombergLP/bslma/AAModelIsSupported-0c.adoc[`AAModelIsSupported&lt;TYPE, AAModelPmr&gt;`] 
| Specialization of `AAModelIsSupported` for the pmr&hyphen;AA model&period;
| xref:BloombergLP/bslma/AAModelIsSupported-01d.adoc[`AAModelIsSupported&lt;TYPE, AAModelStl&gt;`] 
| Specialization of `AAModelIsSupported` for the stl&hyphen;AA model&period;
|===



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