Example Programs Using LEAF to Handle Errors
-
print_file: The complete example from the Five Minute Introduction. This directory contains several versions of the same program, each using a different error handling style.
-
capture_in_result.cpp: Shows how to transport error objects between threads in a
leaf::result<T>
object. -
capture_in_exception.cpp: Shows how to transport error objects between threads in an exception object.
-
lua_callback_result.cpp: Transporting arbitrary error objects through an uncooperative C API.
-
lua_callback_eh.cpp: Transporting arbitrary error objects through an uncooperative exception-safe API.
-
exception_to_result.cpp: Demonstrates how to transport exceptions through a
noexcept
layer in the program. -
exception_error_log.cpp: Using
accumulate
to produce an error log. -
exception_error_trace.cpp: Same as above, but the log is recorded in a
std::deque
rather than just printed. -
print_half.cpp: This is a Boost Outcome example adapted to LEAF, demonstrating the use of
try_handle_some
to handle some errors, forwarding any other error to the caller. -
asio_beast_leaf_rpc.cpp: A simple RPC calculator implemented with Beast+ASIO+LEAF.