|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
constexprstd::size_t index()constnoexcept; | (since C++17) | |
Returns the zero-based index of the alternative that is currently held by the variant.
If the variant isvalueless_by_exception, returnsvariant_npos.
#include <iostream>#include <string>#include <variant> int main(){std::variant<int,std::string> v="abc";std::cout<<"v.index = "<< v.index()<<'\n'; v={};std::cout<<"v.index = "<< v.index()<<'\n';}
Output:
v.index = 1v.index = 0
(C++17) | checks if avariant currently holds a given type(function template)[edit] |
(C++17) | reads the value of the variant given the index or the type (if the type is unique), throws on error (function template)[edit] |