[#BloombergLP-bdlar-DynamicTypeRef]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlar.adoc[bdlar]::DynamicTypeRef
:relfileprefix: ../../
:mrdocs:

Type&hyphen;erased non&hyphen;const reference to an object in the `bdlat` dynamic type category&period;

== Synopsis

Declared in `&lt;bdlar&lowbar;dynamictyperef&period;h&gt;`

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

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlar/DynamicTypeRef/2constructor-0c.adoc[`DynamicTypeRef`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bdlar/DynamicTypeRef/objectAddress.adoc[`objectAddress`] 
| Return a pointer to the wrapped object&period;
| xref:BloombergLP/bdlar/DynamicTypeRef/reset.adoc[`reset`] 
| Reset the referred object to the default value&period;
| xref:BloombergLP/bdlar/DynamicTypeRef/typeCategory.adoc[`typeCategory`] 
| Return type category of the referred object&period;
| xref:BloombergLP/bdlar/DynamicTypeRef/valueConstRef.adoc[`valueConstRef`] 
| Return a reference to the (non&hyphen;modifiable) value&period; The behavior is undefined if the referred object is null&period;
| xref:BloombergLP/bdlar/DynamicTypeRef/valueRef.adoc[`valueRef`] 
| Return a reference to the (modifiable) value&period; The behavior is undefined if the referred object is null&period;
| xref:BloombergLP/bdlar/DynamicTypeRef/vtable.adoc[`vtable`] 
| Return a pointer to the vtable&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessArray-08.adoc[`bdlat&lowbar;typeCategoryAccessArray`]
| Invoke the specified `accessor` on the array selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessChoice-0f.adoc[`bdlat&lowbar;typeCategoryAccessChoice`]
| Invoke the specified `accessor` on the choice selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessCustomizedType-09.adoc[`bdlat&lowbar;typeCategoryAccessCustomizedType`]
| Invoke the specified `accessor` on the customized&hyphen;type selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessEnumeration-04.adoc[`bdlat&lowbar;typeCategoryAccessEnumeration`]
| Invoke the specified `accessor` on the enumeration selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessNullableValue-0b.adoc[`bdlat&lowbar;typeCategoryAccessNullableValue`]
| Invoke the specified `accessor` on the nullable&hyphen;value selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessSequence-01.adoc[`bdlat&lowbar;typeCategoryAccessSequence`]
| Invoke the specified `accessor` on the sequence selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryAccessSimple-07.adoc[`bdlat&lowbar;typeCategoryAccessSimple`]
| Invoke the specified `accessor` on the simple&hyphen;type selection of the specified `ref`&period; Return the value from the invocation of `accessor`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateArray-0e.adoc[`bdlat&lowbar;typeCategoryManipulateArray`]
| Invoke the specified `manipulator` on the array value of the specified `ref`&period; Return the value from the invocation of `manipulator`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateChoice-02.adoc[`bdlat&lowbar;typeCategoryManipulateChoice`]
| Invoke the specified `manipulator` on the choice selection of the specified `ref`&period; Return the value from the invocation of `manipulator`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateCustomizedType-0b.adoc[`bdlat&lowbar;typeCategoryManipulateCustomizedType`]
| Invoke the specified `manipulator` on the customized&hyphen;type value of the specified `ref`&period; Return the value from the invocation of `manipulator`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateEnumeration-0a.adoc[`bdlat&lowbar;typeCategoryManipulateEnumeration`]
| Invoke the specified `manipulator` on the enumeration value of the specified `ref`&period; Return the value from the invocation of `manipulator`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateNullableValue-00.adoc[`bdlat&lowbar;typeCategoryManipulateNullableValue`]
| Invoke the specified `manipulator` on the nullable&hyphen;value selection of the specified `ref`&period; Return the value from the invocation of `manipulator`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateSequence-05.adoc[`bdlat&lowbar;typeCategoryManipulateSequence`]
| Invoke `manipulator` on the sequence selection of `ref`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategoryManipulateSimple-00.adoc[`bdlat&lowbar;typeCategoryManipulateSimple`]
| Invoke the specified `manipulator` on the simple&hyphen;type selection of the specified `ref`&period; Return the value from the invocation of `manipulator`&period;
| xref:BloombergLP/bdlar/bdlat_typeCategorySelect-08.adoc[`bdlat&lowbar;typeCategorySelect`]
| Return the dynamic type category of the specified `ref`&period;
| xref:BloombergLP/bdlar/bdlat_valueTypeReset-049.adoc[`bdlat&lowbar;valueTypeReset`]
| Reset the specified `ref` to its default&hyphen;constructed state&period;
|===


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