[variant.general]

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

## 22.6 Variants [[variant]](variant#general)

### 22.6.1 General [variant.general]

[1](#1)

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

A variant object holds and manages the lifetime of a value[.](#1.sentence-1)

If the variant holds a value, that value's type has to be one
of the template argument types given to variant[.](#1.sentence-2)

These template arguments are called alternatives[.](#1.sentence-3)

[2](#2)

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

In [[variant]](variant "22.6 Variants"),*GET* denotes
a set of exposition-only function templates ([[variant.get]](variant.get "22.6.5 Value access"))[.](#2.sentence-1)
