std::error_condition
| Definida 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 manera única por un valor entero y un 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.
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) |