std::is_error_code_enum<std::io_errc>
Von cppreference.com
| Definiert in Header <ios> |
||
| template<> struct is_error_code_enum<std::io_errc> : public std::true_type {}; |
(seit C++11) | |
Diese Spezialisierung von std::is_error_code_enum informiert andere Bibliothekskomponenten darüber, dass Werte vom Typ std::io_errc Aufzählungen sind, die Fehlercodes enthalten, was sie implizit in Objekte vom Typ std::error_code konvertierbar und zuweisbar macht.
Inhalt |
Abgeleitet von std::integral_constant
Member-Konstanten
| value [static] |
true (öffentliche statische Member-Konstante) |
Memberfunktionen
| operator bool |
konvertiert das Objekt zu bool, gibt value zurück (öffentliche Memberfunktion) |
| operator() (C++14) |
gibt value zurück (öffentliche Memberfunktion) |
Membertypen
| Typ | Definition |
value_type
|
bool |
type
|
std::integral_constant<bool, value> |
[bearbeiten] Beispiel
Der Vergleich zwischen e.code() und std::io_errc::stream kompiliert, da std::is_error_code_enum<std::io_errc>::value == true.
Führen Sie diesen Code aus
#include <fstream> #include <iostream> int main() { std::ifstream f("doesn't exist"); try { f.exceptions(f.failbit); } catch (const std::ios_base::failure& e) { std::cout << "Caught an ios_base::failure.\n"; if (e.code() == std::io_errc::stream) std::cout << "The error code is std::io_errc::stream\n"; } }
Ausgabe
Caught an ios_base::failure. The error code is std::io_errc::stream
[bearbeiten] Siehe auch
| (C++11) |
identifiziert eine Klasse als error_code-Enumeration(class template) |
| (C++11) |
enthält einen plattformabhängigen Fehlercode (Klasse) |
| (C++11) |
die IO-Stream-Fehlercodes (Aufzählung) |