Outcome is a C++14 library for reporting and handling function failures.
It can be used as a substitute for, or a complement to, the exception handling
mechanism.

One use case is for contexts where using C++ exception handling is unsuitable
for different reasons:
* The high relative cost of throwing and catching a C++ exception.
* Making some or all control paths explicitly detailed to aid code correctness
  auditing, as opposed to having hidden control paths caused by exceptions
  potentially thrown from any place.
* Company policy to compile with exceptions disabled.
* Maintaining a code base that was never designed with exception-safety in mind.
* Parts of the programs/frameworks that themselves implement exception handling
  and cannot afford to use exceptions, like propagating failure reports across
  threads, tasks, fibers.
