#include #include int main() { std::variant v{12}, w; int i = std::get(v); w = std::get(v); w = std::get<0>(v); // same effect as the previous line // std::get(v); // error: no double in [int, float] // std::get<3>(v); // error: valid index values are 0 and 1 try { std::get(w); // w contains int, not float: will throw } catch (std::bad_variant_access&) {} }