[optional.general]

# 22 General utilities library [[utilities]](./#utilities)

## 22.5 Optional objects [[optional]](optional#general)

### 22.5.1 General [optional.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L3169)

Subclause [[optional]](optional "22.5 Optional objects") describes class template optional that represents
optional objects[.](#1.sentence-1)

An [*optional object*](#def:optional_object "22.5.1 General [optional.general]") is an
object that contains the storage for another object and manages the lifetime of
this contained object, if any[.](#1.sentence-2)

The contained object may be initialized after
the optional object has been initialized, and may be destroyed before the
optional object has been destroyed[.](#1.sentence-3)

The initialization state of the contained
object is tracked by the optional object[.](#1.sentence-4)
