[#BloombergLP-bdlb-VariantImp_AllocatorBase]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlb.adoc[bdlb]::VariantImp&lowbar;AllocatorBase
:relfileprefix: ../../
:mrdocs:

Component&hyphen;private base holding variant storage and type index&period;

== Synopsis

Declared in `&lt;bdlb&lowbar;variant&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPES&gt;
class VariantImp&lowbar;AllocatorBase;
----

== Description

Do not use&period; This class contains the `typedef`s and data members of the `Variant` class, and serves as the base class for the variant when any one of the types held by the variant has the `bslma&colon;&colon;UsesBslmaAllocator` type trait&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type1.adoc[`Type1`] 
| `Type1` is the 1st type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type10.adoc[`Type10`] 
| `Type10` is the 10th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type11.adoc[`Type11`] 
| `Type11` is the 11th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type12.adoc[`Type12`] 
| `Type12` is the 12th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type13.adoc[`Type13`] 
| `Type13` is the 13th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type14.adoc[`Type14`] 
| `Type14` is the 14th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type15.adoc[`Type15`] 
| `Type15` is the 15th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type16.adoc[`Type16`] 
| `Type16` is the 16th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type17.adoc[`Type17`] 
| `Type17` is the 17th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type18.adoc[`Type18`] 
| `Type18` is the 18th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type19.adoc[`Type19`] 
| `Type19` is the 19th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type2.adoc[`Type2`] 
| `Type2` is the 2nd type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type20.adoc[`Type20`] 
| `Type20` is the 20th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type3.adoc[`Type3`] 
| `Type3` is the 3rd type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type4.adoc[`Type4`] 
| `Type4` is the 4th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type5.adoc[`Type5`] 
| `Type5` is the 5th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type6.adoc[`Type6`] 
| `Type6` is the 6th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type7.adoc[`Type7`] 
| `Type7` is the 7th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type8.adoc[`Type8`] 
| `Type8` is the 8th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/Type9.adoc[`Type9`] 
| `Type9` is the 9th type in the variant&apos;s type list, or `bslmf&colon;&colon;Nil` if absent&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/TypeList.adoc[`TypeList`] 
| `TypeList` is an alias for the `bslmf&colon;&colon;TypeList` type serving as the template parameter to this variant implementation&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/2constructor-07.adoc[`VariantImp&lowbar;AllocatorBase`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/getAllocator.adoc[`getAllocator`] 
| Return the allocator used by this object to supply memory&period;
| xref:BloombergLP/bdlb/VariantImp_AllocatorBase/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;VariantImp&lowbar;AllocatorBase, UsesBslmaAllocator&gt;`] 
| Nested trait declaration for `bslma&colon;&colon;UsesBslmaAllocator`&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdlb/operator_eq-0101.adoc[BloombergLP::bdlb::operator&equals;&equals;]`
| Grant the equality comparison operator access to this class&apos;s private members&period;
| `xref:BloombergLP/bdlb/VariantImp.adoc[BloombergLP::bdlb::VariantImp]`
| This class provides the implementation of `Variant` (except for the creators) given a list of template parameter `TYPES`&period;
|===


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