std:: error_condition
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(C++20)
|
||||
| Helper classes | ||||
|
Défini dans l'en-tête
<system_error>
|
||
|
class
error_condition
;
|
(depuis C++11) | |
std::error_condition
contient une valeur indépendante de la plateforme identifiant une condition d'erreur. Comme
std::error_code
, elle est identifiée de manière unique par une valeur entière et une
std::error_category
, mais contrairement à
std::error_code
, la valeur ne dépend pas de la plateforme.
Une implémentation typique contient un membre de données entier (la valeur) et un pointeur vers une std::error_category .
Table des matières |
Fonctions membres
construit un
error_condition
(fonction membre publique) |
|
|
remplace le contenu
(fonction membre publique) |
|
|
remplace le contenu
(fonction membre publique) |
|
définit le
error_condition
à la valeur
0
dans
generic_category
(fonction membre publique) |
|
obtient la valeur du
error_condition
(fonction membre publique) |
|
obtient la
error_category
pour ce
error_condition
(fonction membre publique) |
|
|
obtient la chaîne explicative
(fonction membre publique) |
|
|
vérifie si la valeur est non nulle
(fonction membre publique) |
Fonctions non membres
|
(supprimé en C++20)
(supprimé en C++20)
(C++20)
|
compare les
error_condition
et les
error_code
(fonction) |
Classes d'assistance
|
(C++11)
|
identifie une énumération comme étant un
std::error_condition
(modèle de classe) |
|
(C++17)
|
support du hachage pour
std::error_condition
(spécialisation de modèle de classe) |
Notes
La
comparaison
entre un
std::error_code
et un
std::error_condition
est définie par leurs catégories d'erreur. Notamment, une condition d'erreur de
std::generic_category
peut être égale à un code d'erreur d'une catégorie spécifique (par exemple
std::system_category
), s'ils représentent le même type d'erreur.
Une valeur
std::errc
peut être comparée à un code d'erreur via la conversion implicite en
std::error_condition
.
#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'; // généralement vrai std::cout << (ec == std::errc::file_exists) << '\n'; // idem std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // faux : // catégorie différente }
Sortie possible :
true true false
Voir aussi
|
(C++11)
|
contient un code d'erreur dépendant de la plateforme
(classe) |
|
(C++11)
|
classe de base pour les catégories d'erreur
(classe) |
|
(C++11)
|
crée une condition d'erreur pour une valeur
errc
e
(fonction) |