On Wed, Jun 21, 2017 at 4:58 PM, Niall Douglas via Boost < boost@lists.boost.org> wrote:
On 22/06/2017 00:21, Peter Dimov via Boost wrote:
Niall, what does result
represent? Same as expected
. It's legal to return that failure occurred, but no information as to why. I see that as being possibly useful.
What's far more interesting is result
. Yes expected is also legal too. Where things get mind bendy is that v2 result can return a T with additional info E, so you can quite legitimately have a result with both .has_value() and .has_error() returning true.
Wasn't this one of the issues people took with Noexcept, that since it works with any return type whatsoever, there is no clear invariant, and you could end up in a situation where you have a value and an error? (I actually agree with this criticism, but in my mind this is a small price to pay for not burdening return objects with transporting errors as well as values.)