On Friday, November 11, 2016 7:27:22 PM CST Niall Douglas wrote:
To that end, I've written an explanation and a sort of tutorial explaining the history and purpose of Outcome at https://ned14.github.io/boost.outcome/ and I'd greatly appreciate if people could tell me:
1. Does it make sense?
I really liked the initial history of error handling design patterns -- it was clear and I appreciated seeing the same running example through the different design approaches. However, when it came to "Introducing Outcome", it no longer felt like an introduction. I was expecting another iteration of the running example using the new library but instead was dropped deep into a design comparison with "Expected". Not knowing anything about the design of Expected, this is where I stopped reading. I skimmed to the end, but essentially understood nothing from it. The basic_monad class template was not motivated and went way over my head. The "Examples of usage" section contained too much obscuring detail and had too many extra things in it like the BOOST_OUTCOME_* macros which were only explained after the code.
2. Do you think you could use Outcome in your own code after reading it?
Nope. For reference: I'm a moderately-skilled programmer but mostly of applications, not reusable libraries. And I'm not immersed in the C++ working group papers. Regards, -Steve