Namespaces
Variants

std::error_condition

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades del programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación a tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
 
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

identifica una enumeración como un std::error_condition
(plantilla de clase)
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)
clase base para categorías de error
(clase)
crea una condición de error para un valor errc e
(función)