[#BloombergLP-bdlb-Variant16]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlb.adoc[bdlb]::Variant16
:relfileprefix: ../../
:mrdocs:

Fixed&hyphen;arity specialization of `Variant` for 16 types&period;

== Synopsis

Declared in `&lt;bdlb&lowbar;variant&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class A1,
    class A2,
    class A3,
    class A4,
    class A5,
    class A6,
    class A7,
    class A8,
    class A9,
    class A10,
    class A11,
    class A12,
    class A13,
    class A14,
    class A15,
    class A16&gt;
class Variant16
    : public xref:BloombergLP/bdlb/VariantImp.adoc[VariantImp&lt;bslmf::TypeList16&lt;A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16&gt;::ListType&gt;]
----

== Description

Its 16 template arguments _must_ all be specified (none are defaulted to `bslmf&colon;&colon;Nil`)&period; It provides the same functionality as &grave;Variant&lt;A1, A2, &period;&period;&period;, A16&gt;&grave;&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdlb/VariantImp.adoc[VariantImp&lt;bslmf::TypeList16&lt;A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16&gt;::ListType&gt;]`
| This class provides the implementation of `Variant` (except for the creators) given a list of template parameter `TYPES`&period;
|===

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlb/Variant16/2constructor-02.adoc[`Variant16`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bdlb/Variant16/operator_assign-01.adoc[`operator&equals;`] 
| Assignment operators
| xref:BloombergLP/bdlb/Variant16/apply.adoc[`apply`] 
| `apply` overloads
| xref:BloombergLP/bdlb/Variant16/applyRaw.adoc[`applyRaw`] 
| `applyRaw` overloads
| xref:BloombergLP/bdlb/Variant16/assign.adoc[`assign`] 
| Assign the specified `TYPE` `value` to this object&period;
| xref:BloombergLP/bdlb/VariantImp/assignTo.adoc[`assignTo`] 
| Assign `value` converted to `TYPE` to this object&period;
| xref:BloombergLP/bdlb/VariantImp/bdexStreamIn.adoc[`bdexStreamIn`] 
| DEPRECATED&colon; Do not use&period;
| xref:BloombergLP/bdlb/VariantImp/bdexStreamOut.adoc[`bdexStreamOut`] 
| DEPRECATED&colon; Do not use&period;
| xref:BloombergLP/bdlb/VariantImp/createInPlace.adoc[`createInPlace`] 
| Emplace a `TYPE` instance constructed from `arguments`&period;
| xref:BloombergLP/bdlb/VariantImp/is.adoc[`is`] 
| Return whether this variant currently holds a `TYPE` value&period;
| xref:BloombergLP/bdlb/VariantImp/isUnset.adoc[`isUnset`] 
| Return whether this variant currently holds no value&period;
| xref:BloombergLP/bdlb/VariantImp/maxSupportedBdexVersion.adoc[`maxSupportedBdexVersion`] 
| DEPRECATED&colon; Do not use&period;
| xref:BloombergLP/bdlb/VariantImp/print.adoc[`print`] 
| Format this object to the specified output `stream`&period;
| xref:BloombergLP/bdlb/VariantImp/reset.adoc[`reset`] 
| Destroy the current value held by this variant (if any), and reset this variant to the unset state&period;
| xref:BloombergLP/bdlb/VariantImp/swap.adoc[`swap`] 
| Swap the value of this object with `other`&period;
| xref:BloombergLP/bdlb/Variant16/the.adoc[`the`] 
| `the` overloads
| xref:BloombergLP/bdlb/VariantImp/typeIndex.adoc[`typeIndex`] 
| Return the 1&hyphen;based index of the held type, or 0 if unset&period;
| xref:BloombergLP/bdlb/VariantImp/typeInfo.adoc[`typeInfo`] 
| Return `typeid(void)`&period;
| xref:BloombergLP/bdlb/Variant16/2conversion-02.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant16, HasPrintMethod&gt;`] 
| Nested trait declaration for `bdlb&colon;&colon;HasPrintMethod`&period;
| xref:BloombergLP/bdlb/Variant16/2conversion-0c.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant16, IsBitwiseCopyable, Traits&colon;&colon;k&lowbar;VARIANT&lowbar;IS&lowbar;BITWISE&lowbar;COPYABLE&gt;`] 
| Nested trait declaration for `bslmf&colon;&colon;IsBitwiseCopyable`&period;
| xref:BloombergLP/bdlb/Variant16/2conversion-0f.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant16, IsBitwiseMoveable, Traits&colon;&colon;k&lowbar;VARIANT&lowbar;IS&lowbar;BITWISE&lowbar;MOVEABLE&gt;`] 
| Nested trait declaration for `bslmf&colon;&colon;IsBitwiseMoveable`&period;
| xref:BloombergLP/bdlb/Variant16/2conversion-00.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant16, UsesBslmaAllocator, Traits&colon;&colon;k&lowbar;VARIANT&lowbar;USES&lowbar;BSLMA&lowbar;ALLOCATOR&gt;`] 
| Nested trait declaration for `bslma&colon;&colon;UsesBslmaAllocator`&period;
| xref:BloombergLP/bdlb/VariantImp/2conversion-0e.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;VariantImp, HasPrintMethod&gt;`] 
| Nested trait declaration for `bdlb&colon;&colon;HasPrintMethod`&period;
| xref:BloombergLP/bdlb/VariantImp/2conversion-02.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;VariantImp, IsBitwiseCopyable, Traits&colon;&colon;k&lowbar;VARIANT&lowbar;IS&lowbar;BITWISE&lowbar;COPYABLE&gt;`] 
| Nested trait declaration for `bslmf&colon;&colon;IsBitwiseCopyable`&period;
| xref:BloombergLP/bdlb/VariantImp/2conversion-05.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;VariantImp, IsBitwiseMoveable, Traits&colon;&colon;k&lowbar;VARIANT&lowbar;IS&lowbar;BITWISE&lowbar;MOVEABLE&gt;`] 
| Nested trait declaration for `bslmf&colon;&colon;IsBitwiseMoveable`&period;
| xref:BloombergLP/bdlb/VariantImp/2conversion-04.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;VariantImp, UsesBslmaAllocator, Traits&colon;&colon;k&lowbar;VARIANT&lowbar;USES&lowbar;BSLMA&lowbar;ALLOCATOR&gt;`] 
| Nested trait declaration for `bslma&colon;&colon;UsesBslmaAllocator`&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlb/operator_not_eq-045.adoc[`operator!&equals;`]
| Return whether `lhs` and `rhs` do not have the same value&period;
| xref:BloombergLP/bdlb/operator_eq-0101.adoc[`operator&equals;&equals;`]
| Grant the equality comparison operator access to this class&apos;s private members&period;
| xref:BloombergLP/bdlb/operator_eq-0fc.adoc[`operator&equals;&equals;`]
| Return whether `lhs` and `rhs` have the same value&period;
| xref:BloombergLP/bdlb/swap-04.adoc[`swap`]
| Swap the values of the specified `a` and `b` objects&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
