std::variant
The last part of this section deals with std::variant which allows us to create a variable from any of the types specified in the std::variant container.
std::variant is a type-safe union. An instance of std::variant
has a value from one of its types. The type must not be a reference, array or void
. A std::variant
can have a type more than once. A default-initialised std::variant
is initialised with its first type; therefore, its first type must have a default constructor. By using var.index
you get the zero-based index of the alternative held by the std::variant
var
. var.valueless_by_exception
returns false
if the variant holds a value. By using var.emplace
you can create a new value in-place. There are a few global functions used to access a ...