std:: get_if (std::variant)
|
Definido en el encabezado
<variant>
|
||
| (1) | (desde 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) | (desde 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
no es un índice válido en la variante.
I
siendo el índice de base cero de
T
en
Types...
. La llamada está mal formada si
T
no es un elemento único de
Types...
.
Contenidos |
Parámetros de plantilla
| I | - | índice a buscar |
| Type | - | tipo único a buscar |
Parámetros
| pv | - | puntero a una variante |
Valor de retorno
Puntero al valor almacenado en la variante apuntada o puntero nulo en caso de error.
Ejemplo
#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); }
Salida:
variant value: 12 failed to get value!
Véase también
|
(C++17)
|
lee el valor del variant dado el índice o el tipo (si el tipo es único), lanza una excepción en caso de error
(plantilla de función) |