ライブラリを作成していて、エラーと例外をきめ細かく制御したいとします。
void foo();
void foo(std::error_code&);
foo()をスローするように実装し、std::system_errorすべてのfoo(std::error_code&)例外をキャッチしてerror_codeを抽出しますか?
または、決してスローしない関数として実装し、エラーコードの存在に応じてfoo(std::error_code&)関数をスローする必要がありますか?foo()