Namespaces
Variants

std::holds_alternative

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tausch- und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Definiert in Header <variant>
template< class T, class... Types >
constexpr bool holds_alternative( const std::variant<Types...>& v ) noexcept;
(seit C++17)

Prüft, ob die Variante v die Alternative T enthält. Der Aufruf ist fehlerhaft, wenn T nicht genau einmal in Types...

Parameter

v - zu untersuchende Variante

Rückgabewert

true wenn der Variant aktuell die Alternative T enthält, false andernfalls.

Beispiel

#include <cassert>
#include <string>
#include <variant>
int main()
{
    std::variant<int, std::string> v = "abc";
    assert(not std::holds_alternative<int>(v));
    assert(std::holds_alternative<std::string>(v));
}

Siehe auch

gibt den nullbasierten Index der vom variant gehaltenen Alternative zurück
(öffentliche Elementfunktion)
liest den Wert des Variants anhand des Index oder Typs (falls der Typ eindeutig ist), wirft bei Fehler
(Funktionstemplate)