Component‐private base holding variant storage and type index.

Synopsis

Declared in <bdlb_variant.h>

template<class TYPES>
class VariantImp_NoAllocatorBase;

Description

Do not use. This class contains the typedef`s and data members of the `Variant class, and serves as the base class for the variant when none of the types held by the variant has the bslma::UsesBslmaAllocator type trait. The goal is to optimize the size of the variant to avoid holding an unnecessary allocator pointer.

Type Aliases

Name

Description

Type1

Type1 is the 1st type in the variant's type list, or bslmf::Nil if absent.

Type10

Type10 is the 10th type in the variant's type list, or bslmf::Nil if absent.

Type11

Type11 is the 11th type in the variant's type list, or bslmf::Nil if absent.

Type12

Type12 is the 12th type in the variant's type list, or bslmf::Nil if absent.

Type13

Type13 is the 13th type in the variant's type list, or bslmf::Nil if absent.

Type14

Type14 is the 14th type in the variant's type list, or bslmf::Nil if absent.

Type15

Type15 is the 15th type in the variant's type list, or bslmf::Nil if absent.

Type16

Type16 is the 16th type in the variant's type list, or bslmf::Nil if absent.

Type17

Type17 is the 17th type in the variant's type list, or bslmf::Nil if absent.

Type18

Type18 is the 18th type in the variant's type list, or bslmf::Nil if absent.

Type19

Type19 is the 19th type in the variant's type list, or bslmf::Nil if absent.

Type2

Type2 is the 2nd type in the variant's type list, or bslmf::Nil if absent.

Type20

Type20 is the 20th type in the variant's type list, or bslmf::Nil if absent.

Type3

Type3 is the 3rd type in the variant's type list, or bslmf::Nil if absent.

Type4

Type4 is the 4th type in the variant's type list, or bslmf::Nil if absent.

Type5

Type5 is the 5th type in the variant's type list, or bslmf::Nil if absent.

Type6

Type6 is the 6th type in the variant's type list, or bslmf::Nil if absent.

Type7

Type7 is the 7th type in the variant's type list, or bslmf::Nil if absent.

Type8

Type8 is the 8th type in the variant's type list, or bslmf::Nil if absent.

Type9

Type9 is the 9th type in the variant's type list, or bslmf::Nil if absent.

TypeList

TypeList is an alias for the bslmf::TypeList type serving as the template parameter to this variant implementation.

Member Functions

Name

Description

VariantImp_NoAllocatorBase [constructor]

Constructors

getAllocator

Return 0. Note that this object does not hold an allocator pointer.

Friends

Name

Description

BloombergLP::bdlb::operator==

Grant the equality comparison operator access to this class's private members.

BloombergLP::bdlb::VariantImp

This class provides the implementation of Variant (except for the creators) given a list of template parameter TYPES.

Created with MrDocs