|
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 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
| 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 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.
| 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 |