[#BloombergLP-bslstl-Optional_Data-09]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::xref:BloombergLP/bslstl/Optional_Data-0c.adoc[Optional&lowbar;Data]&lt;t&lowbar;TYPE, true&gt;
:relfileprefix: ../../
:mrdocs:

Partial specialization for a trivially destructible contained value&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;optional&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TYPE&gt;
struct xref:BloombergLP/bslstl/Optional_Data-0c.adoc[Optional&lowbar;Data]&lt;t&lowbar;TYPE, true&gt;
    : xref:BloombergLP/bslstl/Optional_DataImp.adoc[Optional&lowbar;DataImp&lt;t&lowbar;TYPE&gt;]
----

== Description

This partial specialization manages a trivially destructible `value&lowbar;type` in Optional&lowbar;Base&period; It does not have a user&hyphen;provided destructor, which makes it `is&lowbar;trivially&lowbar;destructible` itself&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bslstl/Optional_DataImp.adoc[Optional&lowbar;DataImp&lt;t&lowbar;TYPE&gt;]`
| Component&hyphen;private buffer managing an optional&apos;s contained value&period;
|===

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Optional_DataImp/emplace-09.adoc[`emplace`] 
| Destroy any contained value and construct a new one in place&period;
| xref:BloombergLP/bslstl/Optional_DataImp/hasValue.adoc[`hasValue`] 
| Return `true` if this objects has a value, and `false` otherwise&period;
| xref:BloombergLP/bslstl/Optional_DataImp/reset.adoc[`reset`] 
| Destroy the `value&lowbar;type` object in `d&lowbar;buffer`, if any&period;
| xref:BloombergLP/bslstl/Optional_DataImp/value-0c.adoc[`value`] 
| `value` overloads
| xref:BloombergLP/bslstl/Optional_Data-09/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;Optional&lowbar;Data, IsBitwiseCopyable, bslmf&colon;&colon;IsBitwiseCopyable&lt;t&lowbar;TYPE&gt;&colon;&colon;value&gt;`] 
| Nested trait declaration for `bslmf&colon;&colon;IsBitwiseCopyable`&period;
|===


== Using Declarations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Optional_Data-09/_10using.adoc[`Unnamed using`] 
| Inherit `Optional&lowbar;DataImp` constructors from the base class&period;
|===



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