c++ - compiler - código de error vs condición de error
c++14 (2)
De http://en.cppreference.com/w/cpp/error/error_condition
std :: error_condition es un código de error independiente de la plataforma. 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.
Entonces, la ventaja es que su código de error no es específico de la plataforma en la que está trabajando cuando usa la std::error:condition
Con un std::error_code
Cada objeto std :: error_code contiene un par de códigos de error originados en el sistema operativo, o alguna interfaz de bajo nivel
Por lo tanto, el error_code
hará referencia a algo específico de su plataforma, una pieza de hardware, etc., etc.
Puede ser ventajoso utilizar ambos. La error_condition
es la "abstracción portátil", por lo que sería el mensaje de error genérico para el usuario y el error_code
error sería la información dependiente de la plataforma que sería útil para la depuración específica.
Una implementación típica [de error_condition] contiene un miembro de datos enteros (el valor) y un puntero a una std :: error_category.
No entiendo bien por qué necesitamos hacer una distinción entre el código de error (std::error_code)
y una condition(std::error_condition)
error condition(std::error_condition)
, ¿no son lo mismo? ¿Cuáles son las ventajas de una condición de error vs código de error?
La respuesta más sencilla a esta pregunta la encontré aquí: http://blog.think-async.com/2010/04/system-error-support-in-c0x-part-5.html .
- class
std::error_code
: representa un valor de error específico devuelto por una operación (como una llamada al sistema).- class
std::error_condition
- algo que desea probar y, potencialmente, reaccionar en su código.
Creo que es aplicable para C ++ 11 también.