Edit

Share via


<variant>

A variant object holds and manages a value. If the variant holds a value, that value's type has to be one of the template argument types given to variant. These template arguments are called alternatives.

Requirements

Header: <variant>

Namespace: std

Members

Operators

Name Description
operator== Tests if the variant object on the left side of the operator is equal to the variant object on the right side.
operator!= Tests if the variant object on the left side of the operator is not equal to the variant object on the right side.
operator< Tests if the variant object on the left side of the operator is less than the variant object on the right side.
operator<= Tests if the variant object on the left side of the operator is less than or equal to the variant object on the right side.
operator> Tests if the variant object on the left side of the operator is greater than the variant object on the right side.
operator>= Tests if the variant object on the left side of the operator is greater than or equal to the variant object on the right side.

Functions

Name Description
get Gets the variant of an object.
get_if Gets the variant of an object if it exists.
holds_alternative Return true if a variant exists.
swap Swaps a variant.
visit Moves to the next variant.

Classes

Name Description
bad_variant_access Objects thrown to report invalid accesses to the value of a variant object.
variant An object to either hold a value of one of its alternative types, or no value.

Structs

Name Description
hash
monostate An alternative type for a variant to make the variant type default constructible.
uses_allocator
variant_alternative Assists the variant objects.
variant_size Assists the variant objects.

Objects

Name Description
variant_npos

See also

Header Files Reference