$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [system] Would it be possible to trial a breaking change to Boost.System and see what happens?
From: Peter Dimov (lists_at_[hidden])
Date: 2018-01-14 13:47:55
Christopher Kohlhoff wrote:
> > There must exist a generic way to test for failure.
>
> Why must this exist? (With the emphasis placed on "generic".)
For the reason I stated; so that one can write a function whose logic is not
broken when a callee switches (or is switched, or is ported) to another
implementation and starts returning error codes from a different domain. And
similarly, so that one can use several helper functions in one's
implementation, each returning codes from a different domain, without the
caller being hopelessly confused by it. That's what "encapsulate" means - to
achieve a degree of independence.
Having a generic way does not in any way preclude one to be able to
(re)interpret success/failure in the concrete case, when the errors returned
are of a specific fixed domain. That's a separate use case and it won't go
away.
A generic success condition is conceptually not any different from a generic
"not found" condition. If you have domain-specific knowledge about what is a
success, you won't compare to generic success, and if you have
domain-specific knowledge about what wasn't found, you won't compare to
generic not found. And consequently, an argument against the former is also
an argument against the latter.