Namensräume
Varianten
Aktionen

std::error_condition

Von cppreference.com
< cpp‎ | error
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-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 Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
 
Definiert in der Header-Datei <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 er eindeutig durch einen Integer-Wert und eine std::error_category identifiziert, aber im Gegensatz zu std::error_code ist der Wert nicht plattformabhängig.

Eine typische Implementierung speichert ein Integer-Datenelement (den Wert) und einen Zeiger auf eine std::error_category.

Inhalt

[bearbeiten] Memberfunktionen

konstruiert ein error_condition
(public member function) [bearbeiten]
ersetzt den Inhalt
(public member function) [bearbeiten]
ersetzt den Inhalt
(public member function) [bearbeiten]
setzt die error_condition auf den Wert 0 in generic_category
(public member function) [bearbeiten]
ruft den Wert der error_condition ab
(public member function) [bearbeiten]
ruft die error_category für diese error_condition ab
(public member function) [bearbeiten]
ruft die erklärende Zeichenkette ab
(public member function) [bearbeiten]
prüft, ob der Wert ungleich Null ist
(public member function) [bearbeiten]

[bearbeiten] Nicht-Member-Funktionen

(entfernt in C++20)(entfernt in C++20)(C++20)
vergleicht error_conditions und error_codes
(function) [bearbeiten]

[bearbeiten] Hilfsklassen

identifiziert eine Aufzählung als eine std::error_condition
(class template) [bearbeiten]
hash-Unterstützung für std::error_condition
(class template specialization) [bearbeiten]

[bearbeiten] Anmerkungen

Der Vergleich zwischen einer std::error_code und einer std::error_condition wird durch ihre Fehlerkategorien definiert. Insbesondere kann eine Fehlerbedingung von std::generic_category mit einem Fehlercode einer bestimmten Kategorie (z. B. std::system_category) gleich verglichen werden, wenn sie die gleiche Art von Fehler darstellen.

Ein std::errc-Wert kann durch implizite Konvertierung zu std::error_condition mit einem Fehlercode 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'; // typically true
    std::cout << (ec == std::errc::file_exists) << '\n'; // ditto
    std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false:
                                                                     // different category
}

Mögliche Ausgabe

true
true
false

[bearbeiten] Siehe auch

enthält einen plattformabhängigen Fehlercode
(Klasse) [bearbeiten]
Basisklasse für Fehlerkategorien
(Klasse) [bearbeiten]
erstellt eine Fehlerbedingung für einen errc-Wert e
(function) [bearbeiten]