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.
-
Exceptions
Exceptions with their good and bad sides.
-
errno
errno with their good and bad sides.
-
Error codes
Error codes with their good and bad sides.
-
std::error_code
Overview of std::error_code
-
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. -
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. -
Narrow contracts
Describes narrow-contract functions that do not work for all input values, and advantage of using them.