BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bsl::variant< t_HEAD, t_TAIL > Class Template Reference

#include <bslstl_variant.h>

Inheritance diagram for bsl::variant< t_HEAD, t_TAIL >:

Public Types

typedef Variant_Base::allocator_type allocator_type
 

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION_IF (variant, BloombergLP::bslma::UsesBslmaAllocator,(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value))
 
 BSLMF_NESTED_TRAIT_DECLARATION_IF (variant, BloombergLP::bslmf::UsesAllocatorArgT,(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value))
 
 BSLMF_NESTED_TRAIT_DECLARATION_IF (variant, BloombergLP::bslmf::IsBitwiseMoveable,(BloombergLP::bslstl::Variant_IsBitwiseMoveableAll< t_HEAD, t_TAIL... >::value))
 
 variant ()
 
 variant (const variant &original)
 
 variant (BloombergLP::bslmf::MovableRef< variant > original)
 
template<class t_TYPE >
 variant (const t_TYPE &value, BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(variant, t_TYPE))
 
template<class t_TYPE >
 variant (bsl::in_place_type_t< t_TYPE >, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
 variant (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<size_t t_INDEX>
 variant (bsl::in_place_index_t< t_INDEX >)
 
template<size_t t_INDEX, class t_ARG_01 >
 variant (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (bsl::allocator_arg_t, allocator_type allocator)
 
 variant (bsl::allocator_arg_t, allocator_type allocator, const variant &original)
 
 variant (bsl::allocator_arg_t, allocator_type allocator, BloombergLP::bslmf::MovableRef< variant > original)
 
template<class t_TYPE >
 variant (bsl::allocator_arg_t, allocator_type allocator, const t_TYPE &value, BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(variant, t_TYPE))
 
template<class t_TYPE >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<size_t t_INDEX>
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_index_t< t_INDEX >)
 
template<size_t t_INDEX, class t_ARG_01 >
 variant (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 ()=default
 
template<class t_TYPE >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace ()
 
template<class t_TYPE , class t_ARG_01 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (const t_ARG_01 &arg_01)
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02)
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03)
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant >::value, t_TYPE & >::type emplace (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)
 
template<size_t t_INDEX>
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace ()
 
template<size_t t_INDEX, class t_ARG_01 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (const t_ARG_01 &arg_01)
 
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & emplace (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)
 
variantoperator= (const variant &rhs)
 
variantoperator= (BloombergLP::bslmf::MovableRef< variant > rhs)
 
template<class t_TYPE >
bsl::enable_if< BloombergLP::bslstl::Variant_AssignsFromType< variant, t_TYPE >::value, variant & >::type operator= (const t_TYPE &value)
 
void swap (variant &other)
 
allocator_type get_allocator () const BSLS_KEYWORD_NOEXCEPT
 
size_t index () const BSLS_KEYWORD_NOEXCEPT
 
bool valueless_by_exception () const BSLS_KEYWORD_NOEXCEPT
 
template<class t_TYPE >
 variant (const t_TYPE &value, BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(variant, t_TYPE))
 
template<class t_TYPE >
 variant (bsl::in_place_type_t< t_TYPE >, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
 variant (bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
 variant (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::in_place_type_t< t_TYPE >, 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_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE >
 variant (bsl::allocator_arg_t, allocator_type allocator, const t_TYPE &value, BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(variant, t_TYPE))
 
template<class t_TYPE >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, const t_ARG_01 &arg_01, const t_ARG_02 &arg_02, const t_ARG_03 &arg_03, const t_ARG_04 &arg_04, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
 variant (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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, BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 
template<class t_TYPE , 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 (bsl::allocator_arg_t, allocator_type allocator, bsl::in_place_type_t< t_TYPE >, 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_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE))
 

Friends

struct BloombergLP::bslstl::Variant_ImpUtil
 
struct BloombergLP::bslstl::Variant_Base< t_HEAD, t_TAIL... >
 

Member Typedef Documentation

◆ allocator_type

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

Type alias to the allocator type used by variant.

Constructor & Destructor Documentation

◆ variant() [1/76]

template<class t_HEAD , class... t_TAIL>
bsl::variant< t_HEAD, t_TAIL >::variant ( )
inline

Create a variant object holding the 0th alternative, which is value-initialized. If this variant is allocator-aware, the currently installed default allocator is used to supply memory.

◆ variant() [2/76]

template<class t_HEAD , class... t_TAIL>
bsl::variant< t_HEAD, t_TAIL >::variant ( const variant< t_HEAD, t_TAIL > &  original)
inline

◆ variant() [3/76]

template<class t_HEAD , class... t_TAIL>
bsl::variant< t_HEAD, t_TAIL >::variant ( BloombergLP::bslmf::MovableRef< variant< t_HEAD, t_TAIL > >  original)
inline

Create a variant object holding the same alternative (if any) held by the specified original. If this variant is allocator-aware, the allocator of original is used to supply memory. If original is not valueless by exception, the contained value is move-constructed from the contained value of original. All alternatives shall be move constructible.

◆ variant() [4/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( const t_TYPE &  value,
BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(variant< t_HEAD, t_TAIL >, t_TYPE)   
)

Create a variant object whose contained value is copy or move constructed from the specified value. If (template parameter) t_TYPE is bslmf::MovableRef<T>, then the selected alternative is the one whose type is the same as T (modulo cv-qualification); otherwise, the selected alternative is the one that is the same as t_TYPE (modulo cv-qualification). This constructor participates in overload resolution only if there is a unique such alternative. If this variant is allocator-aware, the current installed default allocator is used to supply memory.

◆ variant() [5/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

Create a variant object holding a contained value of type (template parameter) t_TYPE, which is value-initialized. If this variant is allocator-aware, the currently installed default allocator is used to supply memory. This constructor participates in overload resolutionly if t_TYPE designates a unique alternative.

◆ variant() [6/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

Create a variant object holding a contained value of type (template parameter) t_TYPE, which is direct-initialized from the specified arg. If this variant is allocator-aware, the currently installed default allocator is used to supply memory. This constructor participates in overload resolution only if t_TYPE designates a unique alternative.

◆ variant() [7/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [8/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [9/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [10/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [11/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [12/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [13/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [14/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [15/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [16/76]

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

Create a variant object holding the alternative with index (template parameter) t_INDEX, which is value-initialized. If this variant is allocator-aware, the currently installed default allocator is used to supply memory. t_INDEX shall be a valid alternative index.

◆ variant() [17/76]

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

Create a variant object holding the alternative with index (template parameter) t_INDEX, which is direct-initialized from the specified arg. If this variant is allocator-aware, the currently installed default allocator is used to supply memory. t_INDEX shall be a valid alternative index.

◆ variant() [18/76]

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

◆ variant() [19/76]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [20/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [21/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [22/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [23/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [24/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [25/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [26/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [27/76]

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

Create a variant object holding the 0th alternative, which is value-initialized. If this variant is allocator-aware, the specified allocator is used to supply memory.

◆ variant() [28/76]

template<class t_HEAD , class... t_TAIL>
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
const variant< t_HEAD, t_TAIL > &  original 
)
inline

Create a variant object holding the same alternative as the specified original object. If this variant 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.

◆ variant() [29/76]

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

◆ variant() [30/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
const t_TYPE &  value,
BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(variant< t_HEAD, t_TAIL >, t_TYPE)   
)

Create a variant object whose contained value is copy or move constructed from the specified value. If (template parameter) t_TYPE is bslmf::MovableRef<T>, then the selected alternative is the one whose type is the same as T (modulo cv-qualification); otherwise, the selected alternative is the one that is the same as t_TYPE (modulo cv-qualification). This constructor participates in overload resolution only if there is a unique such alternative. If this variant is allocator-aware, the specified allocator is used to supply memory.

◆ variant() [31/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

Create a variant object holding a contained value of type (template parameter) t_TYPE, which is value-initialized. If this variant is allocator-aware, the currently installed default allocator is used to supply memory. If this variant is allocator-aware, the specified allocator is used to supply memory. This constructor participates in overload resolution only if t_TYPE designates a unique alternative.

◆ variant() [32/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

Create a variant object holding a contained value of type (template parameter) t_TYPE, which is direct-initialized from the specified arg. If this variant is allocator-aware, the specified allocator is used to supply memory. This constructor participates in overload resolution only if t_TYPE designates a unique alternative.

◆ variant() [33/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [34/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [35/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [36/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [37/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [38/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [39/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [40/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [41/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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_DECLARE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
explicit

◆ variant() [42/76]

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

Create a variant object holding the alternative with index (template parameter) t_INDEX, which is value-initialized. If this variant is allocator-aware, the specified allocator is used to supply memory. t_INDEX shall be a valid alternative index.

◆ variant() [43/76]

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

Create a variant object holding the alternative with index (template parameter) t_INDEX, which is direct-initialized from the specified arg. If this variant is allocator-aware, the specified allocator is used to supply memory. t_INDEX shall be a valid alternative index.

◆ variant() [44/76]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [45/76]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [46/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [47/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [48/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [49/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [50/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [51/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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() [52/76]

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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( 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()

template<class t_HEAD , class... t_TAIL>
bsl::variant< t_HEAD, t_TAIL >::~variant ( )
default

Destroy this object. The contained value (if any) is destroyed. For simplicity of implementation, this method differs from the standard in the following ways:

  • conditional triviality is not implemented
  • 'constexpr' is not implemented

◆ variant() [53/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( const t_TYPE &  value,
BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(variant< t_HEAD, t_TAIL >, t_TYPE)   
)
inline

◆ variant() [54/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [55/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [56/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [57/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [58/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [59/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [60/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [61/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [62/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [63/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [64/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::in_place_type_t< t_TYPE >  ,
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_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [65/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
const t_TYPE &  value,
BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(variant< t_HEAD, t_TAIL >, t_TYPE)   
)
inline

◆ variant() [66/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [67/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [68/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [69/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [70/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [71/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [72/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [73/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [74/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [75/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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,
BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

◆ variant() [76/76]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::variant< t_HEAD, t_TAIL >::variant ( bsl::allocator_arg_t  ,
allocator_type  allocator,
bsl::in_place_type_t< t_TYPE >  ,
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_DEFINE_IF_HAS_UNIQUE_TYPE(t_TYPE)   
)
inline

Member Function Documentation

◆ BSLMF_NESTED_TRAIT_DECLARATION_IF() [1/3]

template<class t_HEAD , class... t_TAIL>
bsl::variant< t_HEAD, t_TAIL >::BSLMF_NESTED_TRAIT_DECLARATION_IF ( variant< 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>
bsl::variant< t_HEAD, t_TAIL >::BSLMF_NESTED_TRAIT_DECLARATION_IF ( variant< 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>
bsl::variant< t_HEAD, t_TAIL >::BSLMF_NESTED_TRAIT_DECLARATION_IF ( variant< t_HEAD, t_TAIL >  ,
BloombergLP::bslmf::UsesAllocatorArgT  ,
(BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny< t_HEAD, t_TAIL... >::value)   
)

◆ emplace() [1/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( )

Create an object of alternative (template parameter) t_TYPE in place, which is value-initialized; any previously contained value is destroyed first. Return a reference to the newly created t_TYPE object. If t_TYPE is allocator-aware, it uses the allocator specified upon the construction of this variant 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.

Note
Note that if the constructor of t_TYPE exits via an exception, this object is left in a valueless by exception state. This function participates in overload resolution only if t_TYPE is a unique alternative.

◆ emplace() [2/22]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX>
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( )

Create the alternative with index (template parameter) t_INDEX in place, which is value-initialized; any previously contained value is destroyed first. Return a reference to the newly created contained value. If the alternative is allocator-aware, it uses the allocator specified upon the construction of this variant 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.

Note
Note that if the alternative constructor exits via an exception, this object is left in the valueless by exception state. t_INDEX shall be a valid alternative index.

◆ emplace() [3/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01)

Create an object of alternative (template parameter) t_TYPE in place, which is direct-initialized from arg; any previously contained value is destroyed first. Return a reference to the newly created t_TYPE object. If t_TYPE is allocator-aware, it uses the allocator specified upon the construction of this variant 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.

Note
Note that if the constructor of t_TYPE exits via an exception, this object is left in a valueless by exception state. This function participates in overload resolution only if t_TYPE is a unique alternative.

◆ emplace() [4/22]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01)

Create the alternative with index (template parameter) t_INDEX in place, direct-initialized from the specified arg; any previously contained value is destroyed first. Return a reference to the newly created contained value. If the alternative is allocator-aware, it uses the allocator specified upon the construction of this variant 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.

Note
Note that if the alternative constructor exits via an exception, this object is left in the valueless by exception state. t_INDEX shall be a valid alternative index.

◆ emplace() [5/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02 
)

◆ emplace() [6/22]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02 
)

◆ emplace() [7/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03 
)

◆ emplace() [8/22]

template<class t_HEAD , class... t_TAIL>
template<size_t t_INDEX, class t_ARG_01 , class t_ARG_02 , class t_ARG_03 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03 
)

◆ emplace() [9/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04 
)

◆ emplace() [10/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( const t_ARG_01 &  arg_01,
const t_ARG_02 &  arg_02,
const t_ARG_03 &  arg_03,
const t_ARG_04 &  arg_04 
)

◆ emplace() [11/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [12/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [13/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , class t_ARG_01 , class t_ARG_02 , class t_ARG_03 , class t_ARG_04 , class t_ARG_05 , class t_ARG_06 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [14/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [15/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [16/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [17/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [18/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [19/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [20/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [21/22]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE , 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 >
bsl::enable_if< BloombergLP::bslstl::Variant_HasUniqueType< t_TYPE, variant< t_HEAD, t_TAIL... > >::value, t_TYPE & >::type bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ emplace() [22/22]

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 >
variant_alternative< t_INDEX, variant< t_HEAD, t_TAIL... > >::type & bsl::variant< t_HEAD, t_TAIL >::emplace ( 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 
)

◆ get_allocator()

template<class t_HEAD , class... t_TAIL>
allocator_type bsl::variant< t_HEAD, t_TAIL >::get_allocator ( ) const
inline

Return a copy of this object's allocator. At least one alternative of this variant object shall be allocator-aware; in C++03, due to language limitations, this method can be called even if no alternative is allocator-aware, but returns a non-allocator type in that case.

◆ index()

template<class t_HEAD , class... t_TAIL>
size_t bsl::variant< t_HEAD, t_TAIL >::index ( ) const
inline

Return the index of the alternative currently managed by this variant object, or bsl::variant_npos if this object is valueless by exception. This method differs from the standard in the following way:

  • constexpr is not implemented This is because no constructors are currently constexpr and there is no way to test the constexpr property of this function.

◆ operator=() [1/3]

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

If 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 contained value of this 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 throws an exception, this variant object is left in a valueless by exception state. All alternatives shall be move constructible and move assignable.

◆ operator=() [2/3]

template<class t_HEAD , class... t_TAIL>
template<class t_TYPE >
bsl::enable_if< BloombergLP::bslstl::Variant_AssignsFromType< variant< t_HEAD, t_TAIL... >, t_TYPE >::value, variant< t_HEAD, t_TAIL... > & >::type bsl::variant< t_HEAD, t_TAIL >::operator= ( const t_TYPE &  value)
inline

Assign to this object the specified value. If (template parameter) t_TYPE is bslmf::MovableRef<T>, then the alternative corresponding to value is the one whose type is the same as T (modulo cv-qualification); otherwise, the selected alternative is the one that is the same as t_TYPE (modulo cv-qualification). This operator participates in overload resolution only if there is a unique such alternative. If this variant object already holds that alternative, then the contained value is assigned from value; otherwise, any contained value is destroyed and the selected alternative is direct-initialized from value. The selected alternative shall be constructible and assignable from value. If the construction of a new alternative object exits via an exception, this variant object is left in the valueless by exception state.

◆ operator=() [3/3]

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

If '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' object is left in a valueless by exception state. All alternatives shall be copy constructible and copy assignable.

◆ swap()

template<class t_HEAD , class... t_TAIL>
void bsl::variant< t_HEAD, t_TAIL >::swap ( variant< t_HEAD, t_TAIL > &  other)
inline

Efficiently exchange the value of this object with the value of the specified other object. This method provides the no-throw exception-safety guarantee if the two swapped objects contain the same alternative and if that alternative t_TYPE provides that guarantee. If *this and other do not have the same active alternative and this method exits via an exception, either or both variant objects may be left in a valueless state or with an contained value in a moved-from state.

Precondition
The behavior is undefined unless *this has the same allocator as other. All alternatives shall be move constructible and swappable. For simplicity of implementation, this method differs from the standard in the following ways:
  • constexpr is not implemented
  • noexcept specification is not implemented

◆ valueless_by_exception()

template<class t_HEAD , class... t_TAIL>
bool bsl::variant< t_HEAD, t_TAIL >::valueless_by_exception ( ) const
inline

Return false if there is an alternative object currently managed by this variant object, and true otherwise. A variant object can become valueless by exception if the creation of an alternative object exits via an exception, or if it is copied or assigned from another variant object that is valueless by exception. This method differs from the standard in the following way:

  • constexpr is not implemented This is because no constructors are currently constexpr and there is no way to test the constexpr property of this function.

Friends And Related Symbol Documentation

◆ BloombergLP::bslstl::Variant_Base< t_HEAD, t_TAIL... >

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

◆ BloombergLP::bslstl::Variant_ImpUtil

template<class t_HEAD , class... t_TAIL>
friend struct BloombergLP::bslstl::Variant_ImpUtil
friend

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