std::bad_variant_access
| Definiert in der Header-Datei <variant> |
||
| class bad_variant_access : public std::exception |
(seit C++17) | |
std::bad_variant_access ist der Typ der Ausnahme, die in folgenden Situationen ausgelöst wird
- std::get(std::variant) wurde mit einem Index oder Typ aufgerufen, der nicht mit der aktuell aktiven Alternative übereinstimmt.
-
std::visitwurde aufgerufen, um ein Variant zu besuchen, dasvalueless_by_exceptionist.
|
(seit C++26) |
Inhalt |
[edit] Member functions
| (Konstruktor) |
konstruiert ein neues bad_variant_access-Objekt(öffentliche Memberfunktion) |
| operator= |
ersetzt das bad_variant_access-Objekt(öffentliche Memberfunktion) |
| what |
gibt den erklärenden String zurück (öffentliche Memberfunktion) |
std::bad_variant_access::bad_variant_access
| bad_variant_access() noexcept; |
(1) | (seit C++17) |
| bad_variant_access( const bad_variant_access& other ) noexcept; |
(2) | (seit C++17) |
Konstruiert ein neues bad_variant_access-Objekt mit einem implementierungsdefinierten, nullterminierten Byte-String, der über what() zugänglich ist.
std::bad_variant_access haben, dann gilt std::strcmp(what(), other.what()) == 0.Parameter
| Sonstiges | - | ein anderes Ausnahmeobjekt zum Kopieren |
std::bad_variant_access::operator=
| bad_variant_access& operator=( const bad_variant_access& other ) noexcept; |
(seit C++17) | |
Weist den Inhalt von other zu. Wenn *this und other beide den dynamischen Typ std::bad_variant_access haben, dann gilt std::strcmp(what(), other.what()) == 0 nach der Zuweisung.
Parameter
| Sonstiges | - | ein anderes Ausnahmeobjekt zum Zuweisen |
Rückgabewert
*this
std::bad_variant_access::what
virtual const char* what() const noexcept; |
(seit C++17) | |
Gibt den erklärenden String zurück.
Rückgabewert
Zeiger auf einen implementierungsdefinierten, nullterminierten String mit erläuternden Informationen. Der String kann für die Konvertierung und Anzeige als std::wstring verwendet werden. Der Zeiger ist garantiert gültig, mindestens bis das Ausnahmeobjekt, von dem er stammt, zerstört wird, oder bis eine nicht-const Memberfunktion (z. B. der Kopierzuweisungsoperator) für das Ausnahmeobjekt aufgerufen wird.
|
Der zurückgegebene String ist während der konstanten Auswertung mit der gewöhnlichen Literal-Codierung kodiert. |
(seit C++26) |
Anmerkungen
Implementierungen dürfen what() überschreiben, sind aber nicht dazu verpflichtet.
Abgeleitet von std::exception
Memberfunktionen
| [virtuell] |
zerstört das Ausnahmeobjekt (virtuelle öffentliche Memberfunktion von std::exception) |
| [virtuell] |
gibt einen erklärenden String zurück (virtuelle öffentliche Memberfunktion von std::exception) |
[edit] Example
#include <iostream> #include <variant> int main() { std::variant<int, float> v; v = 12; try { std::get<float>(v); } catch (const std::bad_variant_access& e) { std::cout << e.what() << '\n'; } }
Mögliche Ausgabe
bad_variant_access
[edit] See also
| (C++17) |
liest den Wert des variants anhand des Index oder des Typs (wenn der Typ eindeutig ist), wirft bei Fehler (function template) |
| (C++17) |
ruft den bereitgestellten Funktor mit den von einem oder mehreren variants gehaltenen Argumenten auf(function template) |
| (C++26) |
ruft den bereitgestellten Funktor mit dem vom variant gehaltenen Argument auf(public member function) |