Namespaces
Variants

std:: error_condition

From cppreference.net
Utilities library
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

identifiziert eine Enumeration als std::error_condition
(Klassentemplate)
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)
Basisklasse für Fehlerkategorien
(Klasse)
erstellt eine Fehlerbedingung für einen errc -Wert e
(Funktion)