BDE 4.14.0 Production release
|
#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::Allocator * | getAllocator () 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 > &) |
This class is component-private. 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.
See bdlb_variant
typedef bslmf::TypeListTypeOf<1,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type1 |
typedef bslmf::TypeListTypeOf<10,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type10 |
typedef bslmf::TypeListTypeOf<11,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type11 |
typedef bslmf::TypeListTypeOf<12,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type12 |
typedef bslmf::TypeListTypeOf<13,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type13 |
typedef bslmf::TypeListTypeOf<14,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type14 |
typedef bslmf::TypeListTypeOf<15,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type15 |
typedef bslmf::TypeListTypeOf<16,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type16 |
typedef bslmf::TypeListTypeOf<17,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type17 |
typedef bslmf::TypeListTypeOf<18,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type18 |
typedef bslmf::TypeListTypeOf<19,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type19 |
typedef bslmf::TypeListTypeOf<2,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type2 |
typedef bslmf::TypeListTypeOf<20,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type20 |
TypeN
is an alias for the N
th 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
.
typedef bslmf::TypeListTypeOf<3,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type3 |
typedef bslmf::TypeListTypeOf<4,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type4 |
typedef bslmf::TypeListTypeOf<5,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type5 |
typedef bslmf::TypeListTypeOf<6,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type6 |
typedef bslmf::TypeListTypeOf<7,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type7 |
typedef bslmf::TypeListTypeOf<8,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type8 |
typedef bslmf::TypeListTypeOf<9,TYPES>::TypeOrDefault bdlb::VariantImp_NoAllocatorBase< TYPES >::Type9 |
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.
|
inline |
|
inline |
Create a VariantImp_NoAllocatorBase
with the specified type
indicating the type of the object that the variant will initially hold.
|
inline |
|
inline |
|
friend |