std:: error_condition
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(C++20)
|
||||
| Helper classes | ||||
|
Definido en el encabezado
<system_error>
|
||
|
class
error_condition
;
|
(desde C++11) | |
std::error_condition
contiene un valor independiente de la plataforma que identifica una condición de error. Al igual que
std::error_code
, se identifica de forma única mediante un valor entero y una
std::error_category
, pero a diferencia de
std::error_code
, el valor no depende de la plataforma.
Una implementación típica contiene un miembro de datos entero (el valor) y un puntero a un std::error_category .
Contenidos |
Funciones miembro
construye un
error_condition
(función miembro pública) |
|
|
reemplaza los contenidos
(función miembro pública) |
|
|
reemplaza los contenidos
(función miembro pública) |
|
establece el
error_condition
al valor
0
en
generic_category
(función miembro pública) |
|
obtiene el valor del
error_condition
(función miembro pública) |
|
obtiene la
error_category
para este
error_condition
(función miembro pública) |
|
|
obtiene la cadena explicativa
(función miembro pública) |
|
|
verifica si el valor es distinto de cero
(función miembro pública) |
Funciones no miembro
|
(eliminado en C++20)
(eliminado en C++20)
(C++20)
|
compara
error_condition
s y
error_code
s
(función) |
Clases auxiliares
|
(C++11)
|
identifica una enumeración como un
std::error_condition
(plantilla de clase) |
|
(C++17)
|
soporte de hash para
std::error_condition
(especialización de plantilla de clase) |
Notas
La
comparación
entre un
std::error_code
y un
std::error_condition
está definida por sus categorías de error. Notablemente, una condición de error de
std::generic_category
puede compararse como igual a un código de error de una categoría específica (por ejemplo,
std::system_category
), si representan el mismo tipo de error.
Un valor de
std::errc
puede compararse con un código de error mediante conversión implícita a
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'; // típicamente true std::cout << (ec == std::errc::file_exists) << '\n'; // igualmente std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false: // categoría diferente }
Salida posible:
true true false
Véase también
|
(C++11)
|
contiene un código de error dependiente de la plataforma
(clase) |
|
(C++11)
|
clase base para categorías de error
(clase) |
|
(C++11)
|
crea una condición de error para un valor
errc
e
(función) |