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

Fixed&hyphen;arity specialization of `Variant` for 14 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&gt;
class Variant14
    : public xref:BloombergLP/bdlb/VariantImp.adoc[VariantImp&lt;bslmf::TypeList14&lt;A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14&gt;::ListType&gt;]
----

== Description

Its 14 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;, A14&gt;&grave;&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdlb/VariantImp.adoc[VariantImp&lt;bslmf::TypeList14&lt;A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14&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/Variant14/2constructor-0a1.adoc[`Variant14`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bdlb/Variant14/operator_assign-08d1.adoc[`operator&equals;`] 
| Assignment operators
| xref:BloombergLP/bdlb/Variant14/apply.adoc[`apply`] 
| `apply` overloads
| xref:BloombergLP/bdlb/Variant14/applyRaw.adoc[`applyRaw`] 
| `applyRaw` overloads
| xref:BloombergLP/bdlb/Variant14/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/Variant14/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/Variant14/2conversion-05.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant14, HasPrintMethod&gt;`] 
| Nested trait declaration for `bdlb&colon;&colon;HasPrintMethod`&period;
| xref:BloombergLP/bdlb/Variant14/2conversion-0f.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant14, 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/Variant14/2conversion-02.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant14, 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/Variant14/2conversion-00.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Variant14, 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]#
