Quick Links: |
#include <bdlb_variant.h>
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION_IF (Variant12, bslma::UsesBslmaAllocator, Traits::k_VARIANT_USES_BSLMA_ALLOCATOR) | |
BSLMF_NESTED_TRAIT_DECLARATION_IF (Variant12, bsl::is_trivially_copyable, Traits::k_VARIANT_IS_BITWISE_COPYABLE) | |
BSLMF_NESTED_TRAIT_DECLARATION_IF (Variant12, bslmf::IsBitwiseMoveable, Traits::k_VARIANT_IS_BITWISE_MOVEABLE) | |
BSLMF_NESTED_TRAIT_DECLARATION (Variant12, HasPrintMethod) | |
Variant12 () | |
template<class TYPE_OR_ALLOCATOR > | |
Variant12 (const TYPE_OR_ALLOCATOR &valueOrAllocator) | |
template<class TYPE > | |
Variant12 (const TYPE &value, bslma::Allocator *basicAllocator) | |
template<class TYPE > | |
Variant12 (bslmf::MovableRef< TYPE > value) | |
template<class TYPE > | |
Variant12 (bslmf::MovableRef< TYPE > value, bslma::Allocator *basicAllocator) | |
Variant12 (const Variant12 &original, bslma::Allocator *basicAllocator=0) | |
Variant12 (bslmf::MovableRef< Variant12 > original) | |
Variant12 (bslmf::MovableRef< Variant12 > original, bslma::Allocator *basicAllocator) | |
template<class TYPE > | |
Variant12 & | operator= (const TYPE &value) |
template<class TYPE > | |
Variant12 & | operator= (bslmf::MovableRef< TYPE > value) |
Variant12 & | operator= (const Variant12 &rhs) |
Variant12 & | operator= (bslmf::MovableRef< Variant12 > rhs) |
BSLMF_NESTED_TRAIT_DECLARATION_IF (VariantImp, bslma::UsesBslmaAllocator, Traits::k_VARIANT_USES_BSLMA_ALLOCATOR) | |
BSLMF_NESTED_TRAIT_DECLARATION_IF (VariantImp, bsl::is_trivially_copyable, Traits::k_VARIANT_IS_BITWISE_COPYABLE) | |
BSLMF_NESTED_TRAIT_DECLARATION_IF (VariantImp, bslmf::IsBitwiseMoveable, Traits::k_VARIANT_IS_BITWISE_MOVEABLE) | |
BSLMF_NESTED_TRAIT_DECLARATION (VariantImp, HasPrintMethod) | |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (const VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (VISITOR &visitor, const TYPE &defaultValue) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (const VISITOR &visitor, const TYPE &defaultValue) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (const VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (VISITOR &visitor, const TYPE &defaultValue) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (const VISITOR &visitor, const TYPE &defaultValue) |
RET_TYPE | apply (VISITOR &visitor) |
RET_TYPE | apply (const VISITOR &visitor) |
RET_TYPE | apply (VISITOR &visitor, const TYPE &defaultValue) |
RET_TYPE | apply (const VISITOR &visitor, const TYPE &defaultValue) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (const VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (VISITOR &visitor, const TYPE &defaultValue) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | apply (const VISITOR &visitor, const TYPE &defaultValue) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (const VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (VISITOR &visitor, const TYPE &defaultValue) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | apply (const VISITOR &visitor, const TYPE &defaultValue) const |
RET_TYPE | apply (VISITOR &visitor) const |
RET_TYPE | apply (const VISITOR &visitor) const |
RET_TYPE | apply (VISITOR &visitor, const TYPE &defaultValue) const |
RET_TYPE | apply (const VISITOR &visitor, const TYPE &defaultValue) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | applyRaw (VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | applyRaw (const VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | applyRaw (VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | applyRaw (const VISITOR &visitor) |
RET_TYPE | applyRaw (VISITOR &visitor) |
RET_TYPE | applyRaw (const VISITOR &visitor) |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | applyRaw (VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==1, typename VISITOR::ResultType > ::type | applyRaw (const VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | applyRaw (VISITOR &visitor) const |
bsl::enable_if < Variant_ReturnValueHelper < VISITOR >::value==0, void > ::type | applyRaw (const VISITOR &visitor) const |
RET_TYPE | applyRaw (VISITOR &visitor) const |
RET_TYPE | applyRaw (const VISITOR &visitor) const |
VariantImp & | assign (const TYPE &value) |
VariantImp & | assign (bslmf::MovableRef< TYPE > value) |
VariantImp & | assignTo (const SOURCE_TYPE &value) |
TYPE & | createInPlace () |
TYPE & | createInPlace (const A1 &a1) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10, const A11 &a11) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10, const A11 &a11, const A12 &a12) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10, const A11 &a11, const A12 &a12, const A13 &a13) |
TYPE & | createInPlace (const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10, const A11 &a11, const A12 &a12, const A13 &a13, const A14 &a14) |
void | reset () |
void | swap (VariantImp &other) |
TYPE & | the () |
const TYPE & | the () const |
bool | is () const |
bool | isUnset () const |
bsl::ostream & | print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const |
int | typeIndex () const |
const bsl::type_info & | typeInfo () const |
STREAM & | bdexStreamIn (STREAM &stream, int version) |
int | maxSupportedBdexVersion () const |
STREAM & | bdexStreamOut (STREAM &stream, int version) const |
This class is a "specialization" of Variant
for a fixed number (12) of types. Its 12 template arguments must all be specified (none are defaulted to bslmf::Nil
). It provides the same functionality as Variant<A1, A2, ..., A12>
.
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | ) |
Create a variant object in the unset state that uses the currently installed default allocator to supply memory.
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | const TYPE_OR_ALLOCATOR & | valueOrAllocator | ) | [explicit] |
Create a variant object with the specified valueOrAllocator
that can be either a value of a type that the variant can hold or an allocator to supply memory. If valueOrAllocator
is not a bslma::Allocator *
, then the variant will hold the value and type of valueOrAllocator
, and use the currently installed default allocator to supply memory. Otherwise, the variant will be unset and use valueOrAllocator
to supply memory. TYPE_OR_ALLOCATOR
must be the same as one of the types that this variant can hold or be convertible to bslma::Allocator *
. Note that this parameterized constructor is defined instead of two constructors (one taking a bslma::Allocator *
and the other not) because template parameter arguments are always a better match than derived-to-base conversion (a concrete allocator pointer converted to bslma::Allocator *
).
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | const TYPE & | value, | |
bslma::Allocator * | basicAllocator | |||
) |
Create a variant object having the specified value
of template parameter TYPE
and that uses the specified basicAllocator
to supply memory. If basicAllocator
is 0, the currently installed default allocator is used. TYPE
must be the same as one of the types that this variant can hold.
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | bslmf::MovableRef< TYPE > | value | ) | [explicit] |
Create a variant object having the specified value
of template parameter TYPE
by moving the contents of value
to the newly-created object. Use the currently installed default allocator to supply memory. value
is left in a valid but unspecified state. TYPE
must be the same as one of the types that this variant can hold. Note that in C++11 mode, this method does not participate in overload resolution if it would lead to ambiguity with the move constructor that does not take an allocator (below) or with the constructor taking a valueOrAllocator
(above).
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | bslmf::MovableRef< TYPE > | value, | |
bslma::Allocator * | basicAllocator | |||
) |
Create a variant object having the specified value
of template parameter TYPE
that uses the specified basicAllocator
to supply memory. If basicAllocator
is 0, the currently installed default allocator is used. The contents of value
are moved to the newly-created object with value
left in a valid but unspecified state. TYPE
must be the same as one of the types that this variant can hold. Note that in C++11 mode, this method does not participate in overload resolution if it would lead to ambiguity with the move constructor that takes an allocator (below).
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | const Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > & | original, | |
bslma::Allocator * | basicAllocator = 0 | |||
) |
Create a variant object having the type and value of the specified original
variant. Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used.
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | bslmf::MovableRef< Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > > | original | ) |
Create a variant object having the type and value of the specified original
object by moving the contents of original
to the newly-created object. The allocator associated with original
(if any) is propagated for use in the newly-created object. original
is left in a valid but unspecified state.
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::Variant12 | ( | bslmf::MovableRef< Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > > | original, | |
bslma::Allocator * | basicAllocator | |||
) |
Create a variant object having the type and value of the specified original
object that uses the specified basicAllocator
to supply memory. If basicAllocator
is 0, the currently installed default allocator is used. The contents of original
are moved to the newly-created object with original
left in a valid but unspecified state.
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::BSLMF_NESTED_TRAIT_DECLARATION_IF | ( | Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > | , | |
bslma::UsesBslmaAllocator | , | |||
Traits::k_VARIANT_USES_BSLMA_ALLOCATOR | ||||
) |
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::BSLMF_NESTED_TRAIT_DECLARATION_IF | ( | Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > | , | |
bsl::is_trivially_copyable | , | |||
Traits::k_VARIANT_IS_BITWISE_COPYABLE | ||||
) |
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::BSLMF_NESTED_TRAIT_DECLARATION_IF | ( | Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > | , | |
bslmf::IsBitwiseMoveable | , | |||
Traits::k_VARIANT_IS_BITWISE_MOVEABLE | ||||
) |
bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::BSLMF_NESTED_TRAIT_DECLARATION | ( | Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > | , | |
HasPrintMethod | ||||
) |
Variant12& bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::operator= | ( | const TYPE & | value | ) |
Assign to this object the specified value
of template parameter TYPE
, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as TYPE
. TYPE
must be the same as one of the types that this variant can hold.
Reimplemented from bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >.
Variant12& bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::operator= | ( | bslmf::MovableRef< TYPE > | value | ) |
Assign to this object the specified value
of template parameter TYPE
, and return a reference providing modifiable access to this object. The contents of value
are moved to this object with value
left in a valid but unspecified state. The value currently held by this variant (if any) is destroyed if that value's type is not the same as TYPE
. TYPE
must be the same as one of the types that this variant can hold. Note that in C++11 mode, this method does not participate in overload resolution if it would lead to ambiguity with the move-assignment operator (below).
Reimplemented from bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >.
Variant12& bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::operator= | ( | const Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > & | rhs | ) |
Assign to this object the type and value currently held by the specified rhs
object, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as the type held by the rhs
object.
Variant12& bdlb::Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::operator= | ( | bslmf::MovableRef< Variant12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 > > | rhs | ) |
Assign to this object the type and value currently held by the specified rhs
object, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as the type held by the rhs
object. The contents of rhs
are either move-inserted into or move-assigned to this object with rhs
left in a valid but unspecified state.
bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::BSLMF_NESTED_TRAIT_DECLARATION_IF | ( | VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType > | , | |
bslma::UsesBslmaAllocator | , | |||
Traits::k_VARIANT_USES_BSLMA_ALLOCATOR | ||||
) | [inherited] |
bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::BSLMF_NESTED_TRAIT_DECLARATION_IF | ( | VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType > | , | |
bsl::is_trivially_copyable | , | |||
Traits::k_VARIANT_IS_BITWISE_COPYABLE | ||||
) | [inherited] |
bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::BSLMF_NESTED_TRAIT_DECLARATION_IF | ( | VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType > | , | |
bslmf::IsBitwiseMoveable | , | |||
Traits::k_VARIANT_IS_BITWISE_MOVEABLE | ||||
) | [inherited] |
bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::BSLMF_NESTED_TRAIT_DECLARATION | ( | VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType > | , | |
HasPrintMethod | ||||
) | [inherited] |
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor | ) | [inherited] |
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor | ) | [inherited] |
Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
.
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | [inherited] |
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | [inherited] |
Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value returned by the 'visitor. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
. This method does not return a value. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RETURN
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor | ) | const [inherited] |
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor | ) | const [inherited] |
Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. If this variant is unset, a default constructed bslmf::Nil
is passed to the visitor
.
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | const [inherited] |
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::apply | ( | const VISITOR & | visitor, | |
const TYPE & | defaultValue | |||
) | const [inherited] |
Apply the specified visitor
to this variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. If this variant is unset, the specified defaultValue
of template parameter TYPE
is passed to the visitor
. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless this variant is unset or holds a value of template parameter TYPE
.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | const VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
. This method does not return a value. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | const VISITOR & | visitor | ) | [inline, inherited] |
< Apply the specified visitor
to this modifiable variant by passing the value (of template parameter TYPE
) this variant currently holds to the visitor
object's operator()
. This method does not return a value. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | VISITOR & | visitor | ) | [inherited] |
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | const VISITOR & | visitor | ) | [inherited] |
Apply the specified visitor
to this modifiable variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. The behavior is undefined if this variant is unset.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 1, typename VISITOR::ResultType>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | const VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value returned by the visitor
. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
defines a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
. This method does not return a value. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
bsl::enable_if<Variant_ReturnValueHelper<VISITOR>::value == 0, void>::type bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | const VISITOR & | visitor | ) | const [inline, inherited] |
< Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
. This method does not return a value. The behavior is undefined if this variant is unset. Note that this method is selected only if the template parameter type VISITOR
does not define a typedef
of ResultType
in its public interface. Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions.
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | VISITOR & | visitor | ) | const [inherited] |
RET_TYPE bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::applyRaw | ( | const VISITOR & | visitor | ) | const [inherited] |
Apply the specified visitor
to this variant by passing the value this variant currently holds to the visitor
object's operator()
, and return the value (of template parameter RET_TYPE
) returned by the visitor
. The behavior is undefined if this variant is unset.
VariantImp& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::assign | ( | const TYPE & | value | ) | [inherited] |
Assign to this object the specified value
of template parameter TYPE
, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as TYPE
. TYPE
must be the same as one of the types that this variant can hold.
VariantImp& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::assign | ( | bslmf::MovableRef< TYPE > | value | ) | [inherited] |
Assign to this object the specified value
of template parameter TYPE
, and return a reference providing modifiable access to this object. The contents of value
are moved to this object with value
left in a valid but unspecified state. The value currently held by this variant (if any) is destroyed if that value's type is not the same as TYPE
. TYPE
must be the same as one of the types that this variant can hold.
VariantImp& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::assignTo | ( | const SOURCE_TYPE & | value | ) | [inherited] |
Assign to this object the specified value
of template parameter SOURCE_TYPE
converted to template parameter TYPE
, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as TYPE
. TYPE
must be the same as one of the types that this variant can hold and SOURCE_TYPE
must be convertible to TYPE
.
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | ) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1 | ) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8, | |||
const A9 & | a9 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8, | |||
const A9 & | a9, | |||
const A10 & | a10 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8, | |||
const A9 & | a9, | |||
const A10 & | a10, | |||
const A11 & | a11 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8, | |||
const A9 & | a9, | |||
const A10 & | a10, | |||
const A11 & | a11, | |||
const A12 & | a12 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8, | |||
const A9 & | a9, | |||
const A10 & | a10, | |||
const A11 & | a11, | |||
const A12 & | a12, | |||
const A13 & | a13 | |||
) | [inherited] |
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::createInPlace | ( | const A1 & | a1, | |
const A2 & | a2, | |||
const A3 & | a3, | |||
const A4 & | a4, | |||
const A5 & | a5, | |||
const A6 & | a6, | |||
const A7 & | a7, | |||
const A8 & | a8, | |||
const A9 & | a9, | |||
const A10 & | a10, | |||
const A11 & | a11, | |||
const A12 & | a12, | |||
const A13 & | a13, | |||
const A14 & | a14 | |||
) | [inherited] |
Create an instance of template parameter TYPE
in this variant object with up to 14 parameters using the allocator currently held by this variant to supply memory, and return a reference providing modifiable access to the created instance. This method first destroys the current value held by this variant (even if TYPE
is the same as the type currently held). TYPE
must be the same as one of the types that this variant can hold. Note the order of the template arguments was chosen so that TYPE
must always be specified.
void bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::reset | ( | ) | [inherited] |
Destroy the current value held by this variant (if any), and reset this variant to the unset state.
void bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::swap | ( | VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType > & | other | ) | [inherited] |
Swap the value of this object with the value of the specified other
object. This method provides the no-throw guarantee if the TYPE
template parameter has a no-throw swap
and the two variant objects being swapped have the same type; otherwise this method provides the basic guarantee.
TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::the | ( | ) | [inherited] |
Return a reference providing modifiable access to the value of template parameter TYPE
held by this variant object. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless is<TYPE>()
returns true
and TYPE
is not void
. Note that TYPE
must be specified explicitly, e.g., myValue.the<int>()
.
const TYPE& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::the | ( | ) | const [inherited] |
Return a reference providing non-modifiable access to the value of template parameter TYPE
held by this variant object. TYPE
must be the same as one of the types that this variant can hold. The behavior is undefined unless is<TYPE>()
returns true
and TYPE
is not void
. Note that TYPE
must be specified explicitly, e.g., myValue.the<int>()
.
bool bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::is | ( | ) | const [inherited] |
Return true
if the value held by this variant object is of template parameter TYPE
, and false
otherwise. TYPE
must be the same as one of the types that this variant can hold. Note that TYPE
must be specified explicitly, e.g., myValue.is<int>()
.
bool bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::isUnset | ( | ) | const [inherited] |
Return true
if this variant is currently unset, and false
otherwise. An unset variant does not hold a value or type. Note that this method should be preferred over checking the type index of the variant.
bsl::ostream& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::print | ( | bsl::ostream & | stream, | |
int | level = 0 , |
|||
int | spacesPerLevel = 4 | |||
) | const [inherited] |
Format this object to the specified output stream
at the (absolute value of) the optionally specified indentation level
, and return a reference to stream
. If level
is specified, optionally specify spacesPerLevel
, the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level
). If stream
is not valid on entry, this operation has no effect. Nothing is printed if this variant is unset. Each type that may be contained by this variant shall be printable with bdlb::PrintMethods
(typically meaning that they either declare the bdlb::HasPrintMethod
trait or provide the <<
output streaming operator). See bdlb_printmethods
. The compiler will emit an error if bdlb::PrintMethods::print
cannot be instantiated for each type that may be contained by this variant.
int bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::typeIndex | ( | ) | const [inherited] |
Return the index in the list of TYPES
corresponding to the type of the value currently held by this variant object (starting at 1), or 0 if this object is unset. Note that instead of switching code on the type index, calling apply
is the preferred method of manipulating different types stored inside a variant.
const bsl::type_info& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::typeInfo | ( | ) | const [inherited] |
Return typeid(void)
.
DEPRECATED: Do not use.
STREAM& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::bdexStreamIn | ( | STREAM & | stream, | |
int | version | |||
) | [inherited] |
DEPRECATED: Do not use.
int bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::maxSupportedBdexVersion | ( | ) | const [inherited] |
DEPRECATED: Do not use.
STREAM& bdlb::VariantImp< bslmf::TypeList12< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 >::ListType >::bdexStreamOut | ( | STREAM & | stream, | |
int | version | |||
) | const [inherited] |
DEPRECATED: Do not use.