Motivation

This section describes techniques currently used to report and handle failures in functions, it also shows why these techniques might be insufficient.

If you just want to learn how to use Outcome library go straight to Tutorial section.

Motivation section of this documentation is not complete yet.

  1. Exceptions

    Exceptions with their good and bad sides.

  2. errno

    errno with their good and bad sides.

  3. Error codes

    Error codes with their good and bad sides.

  4. std::error_code

    Overview of std::error_code

  5. Plugging a library into std::error_code`

    Illustrates how you can hook into the std::error_code system from the Standard Library in order to work with your own set of error codes.

  6. Plugging a library into boost::system::error_code

    Illustrates how you can hook into the boost::system::error_code system from Boost in order to work with your own set of error codes.

  7. Narrow contracts

    Describes narrow-contract functions that do not work for all input values, and advantage of using them.