Any instance of variant
at any given time either holds a value
of one of its alternative types or holds no value.
When an instance of variant
holds a value of alternative type T
it means that a value of type T
, referred to as the variant
object's contained value
, is allocated within the storage of the
Implementations are not permitted to use additional storage, such as dynamic
memory, to allocate the contained value.
The contained value shall be allocated in a region of the variant
storage suitably aligned for all types in Types.