Quick Links:

bal | bbl | bdl | bsl

Classes | Public Types | Public Member Functions | Friends

bdlb::VariantImp_NoAllocatorBase< TYPES > Class Template Reference

#include <bdlb_variant.h>

List of all members.

Classes

union  Value

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

Friends

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 Component bdlb_variant


Member Typedef Documentation

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

Constructor & Destructor Documentation

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

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

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

Member Function Documentation

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

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


Friends And Related Function Documentation

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

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