std:: get_if (std::variant)
Defined in header
<variant>
|
||
(1) | (since C++17) | |
template
<
std::
size_t
I,
class
...
Types
>
constexpr
std::
add_pointer_t
<
std::
variant_alternative_t
<
I,
std::
variant
<
Types...
>>>
|
||
template
<
std::
size_t
I,
class
...
Types
>
constexpr
std::
add_pointer_t
<
const
std::
variant_alternative_t
<
I,
std::
variant
<
Types...
>>>
|
||
(2) | (since C++17) | |
template
<
class
T,
class
...
Types
>
constexpr
std::
add_pointer_t
<
T
>
|
||
template
<
class
T,
class
...
Types
>
constexpr
std::
add_pointer_t
<
const
T
>
|
||
I
is not a valid index in the variant.
I
being the zero-based index of
T
in
Types...
. The call is ill-formed if
T
is not a unique element of
Types...
.
Template parameters
I | - | index to look up |
Type | - | unique type to look up |
Parameters
pv | - | pointer to a variant |
Return value
Pointer to the value stored in the pointed-to variant or null pointer on error.
Example
#include <iostream> #include <variant> int main() { auto check_value = [](const std::variant<int, float>& v) { if (const int* pval = std::get_if<int>(&v)) std::cout << "variant value: " << *pval << '\n'; else std::cout << "failed to get value!" << '\n'; }; std::variant<int, float> v{12}, w{3.f}; check_value(v); check_value(w); }
Output:
variant value: 12 failed to get value!
See also
(C++17)
|
reads the value of the variant given the index or the type (if the type is unique), throws on error
(function template) |