On Tue, Jan 16, 2018 at 12:44 PM, Robert Ramey via Boost < boost@lists.boost.org> wrote:
On 1/16/18 8:56 AM, Nevin Liber via Boost wrote:
On Tue, Jan 16, 2018 at 9:47 AM, Andrzej Krzemienski via Boost < boost@lists.boost.org> wrote:
This attempts to make everyone happy.
Then the attempt to *annotate the conditional conversion to bool deprecated* fails.
While it makes the people who love verbosity happy, it does so at a cost of breaking perfectly correct, well-tested code, and I suspect a large amount of code at that.
a) True - it would break code by invoking a compile time error b) which would be trivial to fix c) and likely in some cases smoke out some errors
Heck, it even breaks Boost code. I would guess that
filesystem, asio and dll are some of the biggest users of error_code, and not only do users of those libraries regularly use "if (ec)", those libraries themselves internally use the same construct.
d) So we would find some new bugs in Boost as well. Sounds like a feature to me.
Robert Ramey
If you decide to change system_error / error_code please make it header-only. This is the only part of Boost.System that requires a library, and I had to work around that fact in Boost.Uuid by providing my own exception type when entropy generation errors occur, where I would have much preferred to leverage system_error, but since Uuid is a header-only solution, I could not. - Jim