Suponiendo que estamos escribiendo una biblioteca y que queremos para proporcionar un control de grano fino sobre errores y excepciones:¿Cómo debemos implementar la API compatible con std :: error_code?
void foo();
void foo(std::error_code&);
Sould que implementar foo()
como lanzar un std::system_error
y dejar foo(std::error_code&)
captura toda excepción y extraer el código_error.
O sould implementamos foo(std::error_code&)
como una función nunca tirar y tirar una función en foo()
dependiendo de la presencia de un código de error?
Mira boost :: asio por ejemplo. http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/reference/basic_stream_socket/connect.html – ForEveR
Diría que también depende de lo que 'foo()' haga. – netcoder