BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslstl::Variant_Base< t_HEAD, t_TAIL > Struct Template Reference

#include <bslstl_variant.h>

Inheritance diagram for bslstl::Variant_Base< t_HEAD, t_TAIL >:

Classes

struct  NoAlloc
 

Public Types

typedef BloombergLP::bslmf::MovableRefUtil MoveUtil
 
typedef BloombergLP::bslstl::Variant_AllocatorBase< BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value > AllocBase
 
typedef BloombergLP::bslstl::Variant_Union< t_HEAD, t_TAIL... > Variant_Union
 
typedef bsl::variant< t_HEAD, t_TAIL... > Variant
 
typedef bsl::conditional< BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value, bsl::allocator< char >, NoAlloc >::type allocator_type
 Type alias to the allocator type used by variant.
 

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION_IF (Variant_Base, BloombergLP::bslma::UsesBslmaAllocator,(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value))
 
 BSLMF_NESTED_TRAIT_DECLARATION_IF (Variant_Base, BloombergLP::bslmf::UsesAllocatorArgT,(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value))
 
 BSLMF_NESTED_TRAIT_DECLARATION_IF (Variant_Base, BloombergLP::bslmf::IsBitwiseMoveable,(BloombergLP::bslstl::Variant_IsBitwiseMoveableAll< t_HEAD, t_TAIL... >::value))
 
 Variant_Base ()
 
 Variant_Base (const Variant &original)
 
 Variant_Base (BloombergLP::bslmf::MovableRef< Variant > original)
 
template<size_t t_INDEX>
 Variant_Base (bsl::in_place_index_t< t_INDEX >)
 
template<size_t t_INDEX, class t_ARG_01 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08, const t_ARG_09 &arg_09)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 , class t_ARG_10 >
 Variant_Base (bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08, const t_ARG_09 &arg_09, const t_ARG_10 &arg_10)
 
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator)
 
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, const Variant &original)
 
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, BloombergLP::bslmf::MovableRef< Variant > original)
 
template<size_t t_INDEX>
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >)
 
template<size_t t_INDEX, class t_ARG_01 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08, const t_ARG_09 &arg_09)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 , class t_ARG_10 >
 Variant_Base (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08, const t_ARG_09 &arg_09, const t_ARG_10 &arg_10)
 
 ~Variant_Base ()
 Destroy this object. The contained value, if any, is destroyed.
 
template<size_t t_INDEX>
void baseEmplace ()
 
template<size_t t_INDEX, class t_ARG_01 >
void baseEmplace (const t_ARG_01 &arg_01)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08, const t_ARG_09 &arg_09)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 , class t_ARG_10 >
void baseEmplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, const t_ARG_05 &arg_05, const t_ARG_06 &arg_06, const t_ARG_07 &arg_07, const t_ARG_08 &arg_08, const t_ARG_09 &arg_09, const t_ARG_10 &arg_10)
 
Variant_Baseoperator= (const Variant_Base &rhs)
 
Variant_Baseoperator= (BloombergLP::bslmf::MovableRef< Variant_Base > rhs)
 
void reset () BSLS_KEYWORD_NOEXCEPT
 Destroy the contained value, if any.
 

Public Attributes

size_t d_type
 
Variant_Union d_union
 Union holding the alternative object.
 

Detailed Description

template<class t_HEAD, class... t_TAIL>
struct bslstl::Variant_Base< t_HEAD, t_TAIL >

This component-private struct defines the data representation of bsl::variant and contains the implementations of its special member functions (which must be defaulted in bsl::variant itself). This class also contains implementations of additional constructors and methods needed for the correct functionality of the variant class hierarchy.

Member Typedef Documentation

◆ allocator_type

template<class t_HEAD , class... t_TAIL>
typedef bsl::conditional<BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,t_TAIL...>::value,bsl::allocator<char>,NoAlloc>::type bslstl::Variant_Base< t_HEAD, t_TAIL >::allocator_type

◆ AllocBase

template<class t_HEAD , class... t_TAIL>
typedef BloombergLP::bslstl::Variant_AllocatorBase< BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value> bslstl::Variant_Base< t_HEAD, t_TAIL >::AllocBase

◆ MoveUtil

template<class t_HEAD , class... t_TAIL>
typedef BloombergLP::bslmf::MovableRefUtil bslstl::Variant_Base< t_HEAD, t_TAIL >::MoveUtil

◆ Variant

template<class t_HEAD , class... t_TAIL>
typedef bsl::variant<t_HEAD, t_TAIL...> bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant

◆ Variant_Union

template<class t_HEAD , class... t_TAIL>
typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL...> bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Union

Constructor & Destructor Documentation

◆ Variant_Base() [1/28]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( )
inline

◆ Variant_Base() [2/28]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( const Variant original)
inline

◆ Variant_Base() [3/28]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( BloombergLP::bslmf::MovableRef< Variant original)
inline

◆ Variant_Base() [4/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  )
inlineexplicit

◆ Variant_Base() [5/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01 
)
inlineexplicit

◆ Variant_Base() [6/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02 
)
inlineexplicit

◆ Variant_Base() [7/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03 
)
inlineexplicit

◆ Variant_Base() [8/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04 
)
inlineexplicit

◆ Variant_Base() [9/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05 
)
inlineexplicit

◆ Variant_Base() [10/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06 
)
inlineexplicit

◆ Variant_Base() [11/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07 
)
inlineexplicit

◆ Variant_Base() [12/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08 
)
inlineexplicit

◆ Variant_Base() [13/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08,
const t_ARG_09 &  arg_09 
)
inlineexplicit

◆ Variant_Base() [14/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 , class t_ARG_10 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08,
const t_ARG_09 &  arg_09,
const t_ARG_10 &  arg_10 
)
inlineexplicit

◆ Variant_Base() [15/28]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator 
)
inline

◆ Variant_Base() [16/28]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
const Variant original 
)
inline

◆ Variant_Base() [17/28]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
BloombergLP::bslmf::MovableRef< Variant original 
)
inline

◆ Variant_Base() [18/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX>
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >   
)
inlineexplicit

◆ Variant_Base() [19/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01 
)
inlineexplicit

◆ Variant_Base() [20/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02 
)
inlineexplicit

◆ Variant_Base() [21/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03 
)
inlineexplicit

◆ Variant_Base() [22/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04 
)
inlineexplicit

◆ Variant_Base() [23/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05 
)
inlineexplicit

◆ Variant_Base() [24/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06 
)
inlineexplicit

◆ Variant_Base() [25/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07 
)
inlineexplicit

◆ Variant_Base() [26/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08 
)
inlineexplicit

◆ Variant_Base() [27/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08,
const t_ARG_09 &  arg_09 
)
inlineexplicit

◆ Variant_Base() [28/28]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 , class t_ARG_10 >
bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Base ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_index_t< t_INDEX >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08,
const t_ARG_09 &  arg_09,
const t_ARG_10 &  arg_10 
)
inlineexplicit

◆ ~Variant_Base()

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::~Variant_Base ( )

Member Function Documentation

◆ baseEmplace() [1/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX>
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( )

◆ baseEmplace() [2/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01)

◆ baseEmplace() [3/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02 
)

◆ baseEmplace() [4/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03 
)

◆ baseEmplace() [5/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04 
)

◆ baseEmplace() [6/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05 
)

◆ baseEmplace() [7/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06 
)

◆ baseEmplace() [8/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07 
)

◆ baseEmplace() [9/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08 
)

◆ baseEmplace() [10/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08,
const t_ARG_09 &  arg_09 
)

◆ baseEmplace() [11/11]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 , class t_ARG_07 , class t_ARG_08 , class t_ARG_09 , class t_ARG_10 >
void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
const t_ARG_05 &  arg_05,
const t_ARG_06 &  arg_06,
const t_ARG_07 &  arg_07,
const t_ARG_08 &  arg_08,
const t_ARG_09 &  arg_09,
const t_ARG_10 &  arg_10 
)

◆ BSLMF_NESTED_TRAIT_DECLARATION_IF() [1/3]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::BSLMF_NESTED_TRAIT_DECLARATION_IF ( Variant_Base< t_HEAD, t_TAIL >  ,
BloombergLP::bslma::UsesBslmaAllocator  ,
(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value)   
)

◆ BSLMF_NESTED_TRAIT_DECLARATION_IF() [2/3]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::BSLMF_NESTED_TRAIT_DECLARATION_IF ( Variant_Base< t_HEAD, t_TAIL >  ,
BloombergLP::bslmf::IsBitwiseMoveable  ,
(BloombergLP::bslstl::Variant_IsBitwiseMoveableAll< t_HEAD, t_TAIL... >::value)   
)

◆ BSLMF_NESTED_TRAIT_DECLARATION_IF() [3/3]

template<class t_HEAD , class... t_TAIL>
bslstl::Variant_Base< t_HEAD, t_TAIL >::BSLMF_NESTED_TRAIT_DECLARATION_IF ( Variant_Base< t_HEAD, t_TAIL >  ,
BloombergLP::bslmf::UsesAllocatorArgT  ,
(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value)   
)

◆ operator=() [1/2]

template<class t_HEAD , class... t_TAIL>
Variant_Base< t_HEAD, t_TAIL... > & bslstl::Variant_Base< t_HEAD, t_TAIL >::operator= ( BloombergLP::bslmf::MovableRef< Variant_Base< t_HEAD, t_TAIL > >  rhs)
inline

If the specified rhs holds the same alternative type as this object, move assign the contained value of rhs to the contained value of this object. Otherwise, destroy the currently held alternative object (if any) and, if rhs holds a value, move-construct the corresponding alternative of this object from the contained value of rhs. The allocators of this object and rhs both remain unchanged. If the construction of a new alternative object exits via an exception, this Variant_Base object is left in a valueless by exception state. All alternatives shall be move constructible and move assignable.

◆ operator=() [2/2]

template<class t_HEAD , class... t_TAIL>
Variant_Base< t_HEAD, t_TAIL... > & bslstl::Variant_Base< t_HEAD, t_TAIL >::operator= ( const Variant_Base< t_HEAD, t_TAIL > &  rhs)
inline

If the specified rhs holds the same alternative type as this object, copy assign the contained value of rhs to the contained value of this object. Otherwise, destroy the contained value of this object (if any) and, if rhs holds a value, copy-construct the corresponding alternative of this object from the contained value of rhs. The allocators of this object and rhs both remain unchanged. If the construction of a new alternative object exits via an exception, this Variant_Base object is left in a valueless by exception state. This behavior differs from the standard, for reasons that are explained in the documentation for variant::operator=. All alternatives shall be copy constructible and copy assignable.

◆ reset()

template<class t_HEAD , class... t_TAIL>
void bslstl::Variant_Base< t_HEAD, t_TAIL >::reset ( )

Member Data Documentation

◆ d_type

template<class t_HEAD , class... t_TAIL>
size_t bslstl::Variant_Base< t_HEAD, t_TAIL >::d_type

Index of the currently active alternative in this variant object, or bsl::variant_npos if the variant is valueless by exception.

◆ d_union

template<class t_HEAD , class... t_TAIL>
Variant_Union bslstl::Variant_Base< t_HEAD, t_TAIL >::d_union

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