BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlb::VariantImp_NoAllocatorBase< TYPES > Class Template Reference

#include <bdlb_variant.h>

Public Types

typedef TYPES TypeList
 
typedef bslmf::TypeListTypeOf< 1, TYPES >::TypeOrDefault Type1
 
typedef bslmf::TypeListTypeOf< 2, TYPES >::TypeOrDefault Type2
 
typedef bslmf::TypeListTypeOf< 3, TYPES >::TypeOrDefault Type3
 
typedef bslmf::TypeListTypeOf< 4, TYPES >::TypeOrDefault Type4
 
typedef bslmf::TypeListTypeOf< 5, TYPES >::TypeOrDefault Type5
 
typedef bslmf::TypeListTypeOf< 6, TYPES >::TypeOrDefault Type6
 
typedef bslmf::TypeListTypeOf< 7, TYPES >::TypeOrDefault Type7
 
typedef bslmf::TypeListTypeOf< 8, TYPES >::TypeOrDefault Type8
 
typedef bslmf::TypeListTypeOf< 9, TYPES >::TypeOrDefault Type9
 
typedef bslmf::TypeListTypeOf< 10, TYPES >::TypeOrDefault Type10
 
typedef bslmf::TypeListTypeOf< 11, TYPES >::TypeOrDefault Type11
 
typedef bslmf::TypeListTypeOf< 12, TYPES >::TypeOrDefault Type12
 
typedef bslmf::TypeListTypeOf< 13, TYPES >::TypeOrDefault Type13
 
typedef bslmf::TypeListTypeOf< 14, TYPES >::TypeOrDefault Type14
 
typedef bslmf::TypeListTypeOf< 15, TYPES >::TypeOrDefault Type15
 
typedef bslmf::TypeListTypeOf< 16, TYPES >::TypeOrDefault Type16
 
typedef bslmf::TypeListTypeOf< 17, TYPES >::TypeOrDefault Type17
 
typedef bslmf::TypeListTypeOf< 18, TYPES >::TypeOrDefault Type18
 
typedef bslmf::TypeListTypeOf< 19, TYPES >::TypeOrDefault Type19
 
typedef bslmf::TypeListTypeOf< 20, TYPES >::TypeOrDefault Type20
 

Public Member Functions

 VariantImp_NoAllocatorBase (int type, bslma::Allocator *)
 
 VariantImp_NoAllocatorBase (int type, bslma::Allocator *, bsl::true_type)
 
template<class TYPE >
 VariantImp_NoAllocatorBase (int type, const TYPE &, bsl::false_type)
 
bslma::AllocatorgetAllocator () const
 Return 0. Note that this object does not hold an allocator pointer.
 

Friends

template<class VARIANT_TYPES >
class VariantImp
 
template<class VARIANT_TYPES >
bool operator== (const VariantImp< VARIANT_TYPES > &, const VariantImp< VARIANT_TYPES > &)
 

Detailed Description

template<class TYPES>
class bdlb::VariantImp_NoAllocatorBase< TYPES >

This class is component-private. Do not use. This class contains the typedefs 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.

See bdlb_variant

Member Typedef Documentation

◆ Type1

template<class TYPES >
typedef bslmf::TypeListTypeOf<1,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type1

◆ Type10

template<class TYPES >
typedef bslmf::TypeListTypeOf<10,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type10

◆ Type11

template<class TYPES >
typedef bslmf::TypeListTypeOf<11,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type11

◆ Type12

template<class TYPES >
typedef bslmf::TypeListTypeOf<12,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type12

◆ Type13

template<class TYPES >
typedef bslmf::TypeListTypeOf<13,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type13

◆ Type14

template<class TYPES >
typedef bslmf::TypeListTypeOf<14,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type14

◆ Type15

template<class TYPES >
typedef bslmf::TypeListTypeOf<15,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type15

◆ Type16

template<class TYPES >
typedef bslmf::TypeListTypeOf<16,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type16

◆ Type17

template<class TYPES >
typedef bslmf::TypeListTypeOf<17,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type17

◆ Type18

template<class TYPES >
typedef bslmf::TypeListTypeOf<18,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type18

◆ Type19

template<class TYPES >
typedef bslmf::TypeListTypeOf<19,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type19

◆ Type2

template<class TYPES >
typedef bslmf::TypeListTypeOf<2,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type2

◆ Type20

template<class TYPES >
typedef bslmf::TypeListTypeOf<20,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type20

TypeN is an alias for the Nth type in the TypeList of this variant implementation. If less than N template arguments were given to the Variant type, then TypeN is bslmf::Nil.

◆ Type3

template<class TYPES >
typedef bslmf::TypeListTypeOf<3,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type3

◆ Type4

template<class TYPES >
typedef bslmf::TypeListTypeOf<4,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type4

◆ Type5

template<class TYPES >
typedef bslmf::TypeListTypeOf<5,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type5

◆ Type6

template<class TYPES >
typedef bslmf::TypeListTypeOf<6,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type6

◆ Type7

template<class TYPES >
typedef bslmf::TypeListTypeOf<7,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type7

◆ Type8

template<class TYPES >
typedef bslmf::TypeListTypeOf<8,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type8

◆ Type9

template<class TYPES >
typedef bslmf::TypeListTypeOf<9,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type9

◆ TypeList

template<class TYPES >
typedef TYPES bdlb::VariantImp_NoAllocatorBase< TYPES >::TypeList

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

Constructor & Destructor Documentation

◆ VariantImp_NoAllocatorBase() [1/3]

template<class TYPES >
bdlb::VariantImp_NoAllocatorBase< TYPES >::VariantImp_NoAllocatorBase ( int  type,
bslma::Allocator  
)
inline

◆ VariantImp_NoAllocatorBase() [2/3]

template<class TYPES >
bdlb::VariantImp_NoAllocatorBase< TYPES >::VariantImp_NoAllocatorBase ( int  type,
bslma::Allocator ,
bsl::true_type   
)
inline

Create a VariantImp_NoAllocatorBase with the specified type indicating the type of the object that the variant will initially hold.

◆ VariantImp_NoAllocatorBase() [3/3]

template<class TYPES >
template<class TYPE >
bdlb::VariantImp_NoAllocatorBase< TYPES >::VariantImp_NoAllocatorBase ( int  type,
const TYPE &  ,
bsl::false_type   
)
inline

Member Function Documentation

◆ getAllocator()

template<class TYPES >
bslma::Allocator * bdlb::VariantImp_NoAllocatorBase< TYPES >::getAllocator ( ) const
inline

Friends And Related Symbol Documentation

◆ operator==

template<class TYPES >
template<class VARIANT_TYPES >
bool operator== ( const VariantImp< VARIANT_TYPES > &  ,
const VariantImp< VARIANT_TYPES > &   
)
friend

◆ VariantImp

template<class TYPES >
template<class VARIANT_TYPES >
friend class VariantImp
friend

The documentation for this class was generated from the following file: