[#BloombergLP-bdlat_ChoiceFunctions] = xref:BloombergLP.adoc[BloombergLP]::bdlat_ChoiceFunctions :relfileprefix: ../ :mrdocs: This `namespace` provides functions that expose "choice" behavior for "choice" types. See the component‐level documentation for more information. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlat_ChoiceFunctions/IsChoice-04.adoc[`IsChoice`] | This `struct` should be specialized for third‐party types that need to expose "choice" behavior. See the component‐level documentation for further information. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlat_ChoiceFunctions/_04enum.adoc[`Unnamed enum`] | Compile‐time constants for choice selection identifiers. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlat_ChoiceFunctions/accessSelection.adoc[`accessSelection`] | Invoke the specified `accessor` on the (non‐modifiable) selection of the specified `object`, supplying `accessor` with the corresponding selection information structure. The supplied `accessor` must be a callable type that can be called as if it had the following signature: ` template <class t_INFO> int accessor(const SELECTION_TYPE& selection, const t_INFO& info); ` Return the value returned from the invocation of `accessor`. The behavior is undefined unless `k_UNDEFINED_SELECTION_ID != selectionId(object)`. | xref:BloombergLP/bdlat_ChoiceFunctions/bdlat_choiceAccessSelection.adoc[`bdlat_choiceAccessSelection`] | Default customization‐point implementation of `accessSelection`. | xref:BloombergLP/bdlat_ChoiceFunctions/bdlat_choiceHasSelection-07.adoc[`bdlat_choiceHasSelection`] | `bdlat_choiceHasSelection` overloads | xref:BloombergLP/bdlat_ChoiceFunctions/bdlat_choiceMakeSelection-06d.adoc[`bdlat_choiceMakeSelection`] | `bdlat_choiceMakeSelection` overloads | xref:BloombergLP/bdlat_ChoiceFunctions/bdlat_choiceManipulateSelection.adoc[`bdlat_choiceManipulateSelection`] | Default customization‐point implementation of `manipulateSelection`. | xref:BloombergLP/bdlat_ChoiceFunctions/bdlat_choiceSelectionId.adoc[`bdlat_choiceSelectionId`] | Default customization‐point implementation of `selectionId`. | xref:BloombergLP/bdlat_ChoiceFunctions/hasSelection-02.adoc[`hasSelection`] | `hasSelection` overloads | xref:BloombergLP/bdlat_ChoiceFunctions/makeSelection-0d.adoc[`makeSelection`] | `makeSelection` overloads | xref:BloombergLP/bdlat_ChoiceFunctions/manipulateSelection.adoc[`manipulateSelection`] | Invoke the specified `manipulator` on the address of the (modifiable) selection of the specified `object`, supplying `manipulator` with the corresponding selection information structure. The supplied `manipulator` must be a callable type that can be called as if it had the following signature: ` template <class t_INFO> int manipulator(SELECTION_TYPE *selection, const t_INFO& info); ` Return the value returned from the invocation of `manipulator`. The behavior is undefined unless `k_UNDEFINED_SELECTION_ID != selectionId(*object)`. | xref:BloombergLP/bdlat_ChoiceFunctions/selectionId.adoc[`selectionId`] | Return the id of the current selection if the selection is defined, and k_UNDEFINED_SELECTION_ID otherwise. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#