[#BloombergLP-bdlat_NullableValueFunctions]
= xref:BloombergLP.adoc[BloombergLP]::bdlat&lowbar;NullableValueFunctions
:relfileprefix: ../
:mrdocs:

This `namespace` provides functions that expose &quot;nullable&quot; behavior for &quot;nullable value&quot; types&period; See the component&hyphen;level documentation for more information&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlat_NullableValueFunctions/IsNullableValue-030.adoc[`IsNullableValue`] 
| This `struct` should be specialized for third&hyphen;party types that need to expose &quot;nullable&quot; behavior&period; See the component&hyphen;level documentation for further information&period;
| xref:BloombergLP/bdlat_NullableValueFunctions/ValueType-08.adoc[`ValueType`] 
| This meta&hyphen;function should contain a typedef `Type` that specifies the type of value stored in a nullable type of the parameterized `TYPE`&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlat_NullableValueFunctions/accessValue.adoc[`accessValue`] 
| Invoke the specified `accessor` on the non&hyphen;modifiable value stored in the specified &quot;nullable&quot; `object`&period; The supplied `accessor` must be a callable type that can be called as if it had the following signature&colon; &grave; int accessor(const VALUE&lowbar;TYPE&amp; value)&semi; &grave; Return the value from the invocation of `accessor`&period; The behavior is undefined unless `object` does not contain a null value&period;
| xref:BloombergLP/bdlat_NullableValueFunctions/bdlat_nullableValueAccessValue-0c1.adoc[`bdlat&lowbar;nullableValueAccessValue`] 
| `bdlat&lowbar;nullableValueAccessValue` overloads
| xref:BloombergLP/bdlat_NullableValueFunctions/bdlat_nullableValueIsNull-03.adoc[`bdlat&lowbar;nullableValueIsNull`] 
| `bdlat&lowbar;nullableValueIsNull` overloads
| xref:BloombergLP/bdlat_NullableValueFunctions/bdlat_nullableValueMakeValue-0c.adoc[`bdlat&lowbar;nullableValueMakeValue`] 
| `bdlat&lowbar;nullableValueMakeValue` overloads
| xref:BloombergLP/bdlat_NullableValueFunctions/bdlat_nullableValueManipulateValue-0d.adoc[`bdlat&lowbar;nullableValueManipulateValue`] 
| `bdlat&lowbar;nullableValueManipulateValue` overloads
| xref:BloombergLP/bdlat_NullableValueFunctions/isNull.adoc[`isNull`] 
| Return `true` if the specified &quot;nullable&quot; `object` contains a null value, and `false` otherwise&period;
| xref:BloombergLP/bdlat_NullableValueFunctions/makeValue.adoc[`makeValue`] 
| Assign to the specified &quot;nullable&quot; `object` the default value for the contained type&period;
| xref:BloombergLP/bdlat_NullableValueFunctions/manipulateValue.adoc[`manipulateValue`] 
| Invoke the specified `manipulator` on the address of the value stored in the specified &quot;nullable&quot; `object`&period; The supplied `manipulator` must be a callable type that can be called as if it had the following signature&colon; &grave; int manipulator(VALUE&lowbar;TYPE &ast;value)&semi; &grave; Return the value from the invocation of `manipulator`&period; The behavior is undefined unless `object` does not contain a null value&period;
|===



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