2017-05-18 16:52 GMT+02:00 Niall Douglas via Boost
It's interesting. Only after Peter's explanation I am able to see the usefulness of outcome<>, at least this part of the interface. It looks like you - Peter - have the understanding of Niall's intentions. And I am clearly lacking them. I would not be able to figure out this use case from the tutorials of the reference.
This gives me the impression that the library has a big potential, but it may not succeed because of the failure to explain its power to potential users.
This has been a persistent problem over the past year.
Once you've been using these things in your own code for a bit, for especially low level systems libraries you'd never willingly go back. The difference is very similar (to me at least) to that feeling you have when you must go back to writing C++ 98 without Boost after you've been using C++ 14 for a quite a while.
I trust your judgement on this. I just wish short examples in the docs could convince me about that.
All that said, 60-70% of C++ would see no benefit to using Outcome nor Expected. Such code is always better off using only C++ exceptions.
That leaves 30-40%, which is a huge market share. I claim about 95% of C++ would see no benefit in using `boost::variant`, but still the library is useful.
It would really be helpful to see a section in the docs with a number of examples simple as the ones above, explaining different use cases.
I am hesitant to add even more length to the existing documentation. It's already long enough to put people off.
I understand your concern.
A refactoring and shortening of the current length would be much more desirable.
It seems likely to me that documentation (the non-reference part) consisting of a number of short annotated exaples could be shorter and convey more information and motivation at the same time. Regards, &rzej;