|
BDE 4.39.x Production Release
|
#include <bslstl_variant.h>
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.
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 |
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 () | |
| 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_Base & | operator= (const Variant_Base &rhs) |
| Variant_Base & | operator= (BloombergLP::bslmf::MovableRef< Variant_Base > rhs) |
| void | reset () BSLS_KEYWORD_NOEXCEPT |
Public Attributes | |
| size_t | d_type |
| Variant_Union | d_union |
| 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 |
Type alias to the allocator type used by variant.
| typedef BloombergLP::bslstl::Variant_AllocatorBase< BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value> bslstl::Variant_Base< t_HEAD, t_TAIL >::AllocBase |
| typedef BloombergLP::bslmf::MovableRefUtil bslstl::Variant_Base< t_HEAD, t_TAIL >::MoveUtil |
| typedef bsl::variant<t_HEAD, t_TAIL...> bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant |
| typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL...> bslstl::Variant_Base< t_HEAD, t_TAIL >::Variant_Union |
|
inline |
Create a Variant_Base object holding the 0th alternative, which is value-initialized. If this Variant_Base is allocator-aware, the currently installed default constructor is used to supply memory.
|
inline |
Create a Variant_Base object holding the same alternative (if any) as the specified original object. If this Variant_Base is allocator-aware, the currently installed default allocator is used to supply memory. If the original object is not valueless by exception, the contained value is copy-constructed from the contained value of original. All alternatives shall be copy constructible.
|
inline |
Create a Variant_Base object holding the same alternative (if any) held by the specified original. If this Variant_Base is allocator-aware, the allocator of original is used to supply memory. If the original object is not valueless by exception, the contained value is move-constructed from the contained value of original. All alternatives shall be move constructible.
|
inlineexplicit |
Create a Variant_Base object holding the alternative with index (template parameter) t_INDEX, which is value-initialized. If this Variant_Base is allocator-aware, the currently installed default constructor is used to supply memory.
|
inlineexplicit |
Create a Variant_Base object holding the alternative with index (template parameter) t_INDEX, which is direct-initialized from the specified arg. If this Variant_Base is allocator-aware, the currently installed default constructor is used to supply memory.
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inline |
Create a Variant_Base object holding the 0th alternative, which is value-initialized. If this Variant_Base is allocator-aware, the specified allocator is used to supply memory.
|
inline |
Create a Variant_Base object holding the same alternative (if any) held by the specified original object. If this Variant_Base is allocator-aware, the specified allocator is used to supply memory. If the original object is not valueless by exception, the contained value is copy/move constructed from the contained value of original. All alternatives shall be copy/move constructible.
|
inline |
|
inlineexplicit |
Create a Variant_Base object holding the alternative with index (template parameter) t_INDEX, which is value-initialized. If this Variant_Base is allocator-aware, the specified allocator is used to supply memory.
|
inlineexplicit |
Create a Variant_Base object holding the alternative with index (template parameter) t_INDEX, direct-initialized from arg. If this Variant_Base is allocator-aware, the specified allocator is used to supply memory.
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
| bslstl::Variant_Base< t_HEAD, t_TAIL >::~Variant_Base | ( | ) |
Destroy this object. The contained value, if any, is destroyed.
| void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace | ( | ) |
Create the alternative with index (template parameter) t_INDEX in place, which is value-initialized. If this Variant_Base object already holds a value, that contained value is destroyed before the new object is created. If the alternative is allocator-aware, it uses the allocator specified upon the construction of this Variant_Base object to supply memory; passing an allocator argument to this method results in two allocators being passed to the alternative constructor, resulting in a likely compilation error.
| void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace | ( | const t_ARG_01 & | arg_01 | ) |
Create the alternative with index (template parameter) t_INDEX in place, direct-initialized from the specified arg. If this Variant_Base object already holds a value, that contained value is destroyed before the new object is created. If the alternative is allocator-aware, it uses the allocator specified upon the construction of this Variant_Base object to supply memory; passing an allocator argument to this method results in two allocators being passed to the alternative constructor, resulting in a likely compilation error.
| void bslstl::Variant_Base< t_HEAD, t_TAIL >::baseEmplace | ( | const t_ARG_01 & | arg_01, |
| const t_ARG_02 & | arg_02 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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) | |||
| ) |
| 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) | |||
| ) |
| 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) | |||
| ) |
|
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.
|
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.
| void bslstl::Variant_Base< t_HEAD, t_TAIL >::reset | ( | ) |
Destroy the contained value, if any.
| 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.
| Variant_Union bslstl::Variant_Base< t_HEAD, t_TAIL >::d_union |
Union holding the alternative object.