Namespaces
Variants

std:: error_condition

From cppreference.net
Utilities library
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

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)