std:: get_if (std::variant)
|
Definiert im Header
<variant>
|
||
| (1) | (seit 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) | (seit 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
kein gültiger Index im Variant ist.
I
als nullbasiertem Index von
T
in
Types...
. Der Aufruf ist fehlerhaft, wenn
T
kein eindeutiges Element von
Types...
ist.
Inhaltsverzeichnis |
Template-Parameter
| I | - | Index für die Suche |
| Typ | - | Eindeutiger Typ für die Suche |
Parameter
| pv | - | Zeiger auf eine Variante |
Rückgabewert
Zeiger auf den im gezeigten Variant gespeicherten Wert oder Nullzeiger bei Fehler.
Beispiel
#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); }
Ausgabe:
variant value: 12 failed to get value!
Siehe auch
|
(C++17)
|
liest den Wert des Varianten gegeben den Index oder den Typ (falls der Typ eindeutig ist), wirft bei Fehler
(Funktions-Template) |