[#BloombergLP-balb-Choice5]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balb.adoc[balb]::Choice5
:relfileprefix: ../../
:mrdocs:

== Synopsis

Declared in `&lt;balb&lowbar;testmessages&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class Choice5;
----

== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balb/Choice5/_04enum-0f.adoc[`Unnamed enum`] 
| Selection identifier constants&period;
| xref:BloombergLP/balb/Choice5/_04enum-06.adoc[`Unnamed enum`] 
| Selection count constant&period;
| xref:BloombergLP/balb/Choice5/_04enum-0d.adoc[`Unnamed enum`] 
| Selection index constants&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balb/Choice5/2constructor-0e.adoc[`Choice5`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/balb/Choice5/2destructor.adoc[`&#126;Choice5`] [.small]#[destructor]#
| Destroy this object&period;
| xref:BloombergLP/balb/Choice5/operator_assign.adoc[`operator&equals;`] 
| Assign to this object the value of the specified `rhs` object&period;
| xref:BloombergLP/balb/Choice5/accessSelection.adoc[`accessSelection`] 
| Invoke the specified `accessor` on the non&hyphen;modifiable selection, supplying `accessor` with the corresponding selection information structure&period; Return the value returned from the invocation of `accessor` if this object has a defined selection, and &hyphen;1 otherwise&period;
| xref:BloombergLP/balb/Choice5/bdexStreamIn.adoc[`bdexStreamIn`] 
| Assign to this object the value read from the specified input `stream` using the specified `version` format and return a reference to the modifiable `stream`&period; If `stream` is initially invalid, this operation has no effect&period; If `stream` becomes invalid during this operation, this object is valid, but its value is undefined&period; If `version` is not supported, `stream` is marked invalid and this object is unaltered&period; Note that no version is read from `stream`&period; See the `bslx` package&hyphen;level documentation for more information on `bdex` streaming of value&hyphen;semantic types and containers&period;
| xref:BloombergLP/balb/Choice5/bdexStreamOut.adoc[`bdexStreamOut`] 
| Write the value of this object to the specified output `stream` using the specified `version` format and return a reference to the modifiable `stream`&period; If `version` is not supported, `stream` is unmodified&period; Note that `version` is not written to `stream`&period; See the `bslx` package&hyphen;level documentation for more information on `bdex` streaming of value&hyphen;semantic types and containers&period;
| xref:BloombergLP/balb/Choice5/isSelection1Value.adoc[`isSelection1Value`] 
| Return `true` if the value of this object is a &quot;Selection1&quot; value, and return `false` otherwise&period;
| xref:BloombergLP/balb/Choice5/isSelection2Value.adoc[`isSelection2Value`] 
| Return `true` if the value of this object is a &quot;Selection2&quot; value, and return `false` otherwise&period;
| xref:BloombergLP/balb/Choice5/isUndefinedValue.adoc[`isUndefinedValue`] 
| Return `true` if the value of this object is undefined, and `false` otherwise&period;
| xref:BloombergLP/balb/Choice5/makeSelection-01.adoc[`makeSelection`] 
| `makeSelection` overloads
| xref:BloombergLP/balb/Choice5/makeSelection1-0c.adoc[`makeSelection1`] 
| `makeSelection1` overloads
| xref:BloombergLP/balb/Choice5/makeSelection2-0e.adoc[`makeSelection2`] 
| `makeSelection2` overloads
| xref:BloombergLP/balb/Choice5/manipulateSelection.adoc[`manipulateSelection`] 
| Invoke the specified `manipulator` on the address of the modifiable selection, supplying `manipulator` with the corresponding selection information structure&period; Return the value returned from the invocation of `manipulator` if this object has a defined selection, and &hyphen;1 otherwise&period;
| xref:BloombergLP/balb/Choice5/print.adoc[`print`] 
| Format this object to the specified output `stream` at the optionally specified indentation `level` and return a reference to the modifiable `stream`&period; If `level` is specified, optionally specify `spacesPerLevel`, the number of spaces per indentation level for this and all of its nested objects&period; Each line is indented by the absolute value of `level &ast; spacesPerLevel`&period; If `level` is negative, suppress indentation of the first line&period; If `spacesPerLevel` is negative, suppress line breaks and format the entire output on one line&period; If `stream` is initially invalid, this operation has no effect&period; Note that a trailing newline is provided in multiline mode only&period;
| xref:BloombergLP/balb/Choice5/reset.adoc[`reset`] 
| Reset this object to the default value (i&period;e&period;, its value upon default construction)&period;
| xref:BloombergLP/balb/Choice5/selection1-0ed.adoc[`selection1`] 
| `selection1` overloads
| xref:BloombergLP/balb/Choice5/selection2-06f.adoc[`selection2`] 
| `selection2` overloads
| xref:BloombergLP/balb/Choice5/selectionId.adoc[`selectionId`] 
| Return the id of the current selection if the selection is defined, and &hyphen;1 otherwise&period;
| xref:BloombergLP/balb/Choice5/selectionName.adoc[`selectionName`] 
| Return the symbolic name of the current selection of this object&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balb/Choice5/lookupSelectionInfo-08.adoc[`lookupSelectionInfo`] 
| `lookupSelectionInfo` overloads
| xref:BloombergLP/balb/Choice5/maxSupportedBdexVersion.adoc[`maxSupportedBdexVersion`] 
| Return the most current `bdex` streaming version number supported by this class&period; See the `bslx` package&hyphen;level documentation for more information on `bdex` streaming of value&hyphen;semantic types and containers&period;
|===


== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balb/Choice5/d_selection1.adoc[`d&lowbar;selection1`] [.small]#[variant member]#
| Storage for the &quot;Selection1&quot; selection&period;
| xref:BloombergLP/balb/Choice5/d_selection2.adoc[`d&lowbar;selection2`] [.small]#[variant member]#
| Storage for the &quot;Selection2&quot; selection&period;
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balb/Choice5/CLASS_NAME.adoc[`CLASS&lowbar;NAME`] 
| Name of this class&period;
| xref:BloombergLP/balb/Choice5/SELECTION_INFO_ARRAY.adoc[`SELECTION&lowbar;INFO&lowbar;ARRAY`] 
| Selection information array for this choice&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balb/operator_not_eq-017.adoc[`operator!&equals;`]
| Return `true` if the specified `lhs` and `rhs` objects do not have the same values, as determined by `operator&equals;&equals;`, and `false` otherwise&period;
| xref:BloombergLP/balb/operator_eq-01c6.adoc[`operator&equals;&equals;`]
| Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise&period; Two `Choice5` objects have the same value if either the selections in both objects have the same ids and the same values, or both selections are undefined&period;
|===


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