std:: error_condition
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(C++20)
|
||||
| Helper classes | ||||
|
Definiert im Header
<system_error>
|
||
|
class
error_condition
;
|
(seit C++11) | |
std::error_condition
speichert einen plattformunabhängigen Wert, der eine Fehlerbedingung identifiziert. Ähnlich wie
std::error_code
wird es eindeutig durch einen ganzzahligen Wert und eine
std::error_category
identifiziert, aber im Gegensatz zu
std::error_code
ist der Wert nicht plattformabhängig.
Eine typische Implementierung enthält ein ganzzahliges Datenmitglied (den Wert) und einen Zeiger auf eine std::error_category .
Inhaltsverzeichnis |
Memberfunktionen
konstruiert einen
error_condition
(öffentliche Elementfunktion) |
|
|
ersetzt den Inhalt
(öffentliche Elementfunktion) |
|
|
ersetzt den Inhalt
(öffentliche Elementfunktion) |
|
setzt den
error_condition
auf Wert
0
in
generic_category
(öffentliche Elementfunktion) |
|
ermittelt den Wert des
error_condition
(öffentliche Elementfunktion) |
|
ermittelt die
error_category
für diesen
error_condition
(öffentliche Elementfunktion) |
|
|
ermittelt die erklärende Zeichenkette
(öffentliche Elementfunktion) |
|
|
prüft, ob der Wert ungleich null ist
(öffentliche Elementfunktion) |
Nicht-Member-Funktionen
|
(entfernt in C++20)
(entfernt in C++20)
(C++20)
|
vergleicht
error_condition
s und
error_code
s
(Funktion) |
Hilfsklassen
|
(C++11)
|
identifiziert eine Enumeration als
std::error_condition
(Klassentemplate) |
|
(C++17)
|
Hash-Unterstützung für
std::error_condition
(Klassentemplate-Spezialisierung) |
Hinweise
Der
Vergleich
zwischen einem
std::error_code
und einem
std::error_condition
wird durch ihre Fehlerkategorien definiert. Insbesondere kann eine Fehlerbedingung der
std::generic_category
gleich einem Fehlercode einer spezifischen Kategorie sein (z.B.
std::system_category
), wenn sie dieselbe Art von Fehler repräsentieren.
Ein
std::errc
-Wert kann mit einem Fehlercode über implizite Konvertierung zu
std::error_condition
verglichen werden.
#include <cerrno> #include <iostream> #include <system_error> #include <Windows.h> int main() { std::error_code ec{ERROR_FILE_EXISTS, std::system_category()}; std::error_condition econd{EEXIST, std::generic_category()}; std::cout.setf(std::ios::boolalpha); std::cout << (ec == econd) << '\n'; // typischerweise true std::cout << (ec == std::errc::file_exists) << '\n'; // ebenso std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false: // unterschiedliche Kategorie }
Mögliche Ausgabe:
true true false
Siehe auch
|
(C++11)
|
enthält einen plattformabhängigen Fehlercode
(Klasse) |
|
(C++11)
|
Basisklasse für Fehlerkategorien
(Klasse) |
|
(C++11)
|
erstellt eine Fehlerbedingung für einen
errc
-Wert
e
(Funktion) |