|
Boost : |
Subject: Re: [boost] [outcome] comments on Regular ops
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2018-01-23 09:33:22
> It's not too controversial for result<>, but in outcome<> "!r" will be
> true if there isn't a value, but "r.error()" might throw or UB in that
> case if it has an exception without an error code.
>
> So the long-form of that test would be:
>
> Â Â Â if ( r.has_error() && r.error() == condition )
For `outcome` yes, for `result` you are guaranteed this is safe:
if(!r && r.error() == condition)
And just to remind people, `outcome` has a synthesising `failure()`
function which does what `exception()` did in Outcome v1, so this is
also guaranteed safe:
if(!o) std::rethrow_exception(o.failure())
Niall
-- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk