On 23/06/2017 00:00, Peter Dimov via Boost wrote:
Niall Douglas wrote:
I appreciate that this change is controversial. However, I am also minded that there is no point in Outcome v2 covering the identical ground as Expected, just less well.
Can't say I agree with that. Outcome should cover the ground that needs to be covered. Not cover useless ground that nobody needs covered (status) just to avoid the "expected" ground. If that makes result
virtually identical to expected , so be it. This is just a sign that both you and Vicente have the basic design correct. You will still differentiate based on implementation quality, extra features of error_code_extended, and the added value that outcome brings to the party.
I appreciate this.
However I am thinking here in terms of WG21 standardisation,
specifically SG14's work on a std::vector upgrade which doesn't have the
really unfortunate unpredictable latency. The general idea is that a low
latency std::vector would never expand its capacity automatically,
instead it would return success + capacity approaching warning status.
You then could schedule the construction of a new, bigger vector outside
the hot path.
That's why Lawrence's Status + Value proposal garnered such interest,
but there were concerns about whether an expected