[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)