Namespaces
Variants

std::error_condition

Von de.cppreference.net
 
 
Dienstprogramme-Bibliothek
Sprachunterstützung
Typunterstützung (grundlegende Typen, 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
Vergleichsoperatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tauschen 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 <system_error>
class error_condition;
(seit C++11)

std::error_condition hält einen plattformunabhängigen Wert, der eine Fehlerbedingung identifiziert. Wie std::error_code, wird es eindeutig durch einen ganzzahligen Wert und ein std::error_category, aber anders als std::error_code, ist der Wert nicht plattformabhängig.

Eine typische Implementierung hält ein ganzzahliges Datenelement (den Wert) und einen Zeiger auf ein std::error_category.

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)