śr., 19 gru 2018 o 03:00 Emil Dotchevski via Boost
LEAF is a small C++11 error handling library (the acronym stands for Low-latency Error Augmentation Framework).
Features:
- Header-only, NO dependencies. - No dynamic memory allocations. - Associate objects of arbitrary types with any failure — when it is initially reported or at a later time. - Compatible with std::error_code, errno and any other error handling API. - Use with or without exception handling. - Support for multi-thread programming.
Official documentation: https://zajo.github.io/leaf.
LEAF is designed for use in low-latency environments without exception handling, but it also works with exception handling; in that case it is a better, more optimal replacement for Boost Exception. This link can be helpful for refactoring existing Boost Exception code: https://zajo.github.io/leaf/#boost_exception.
Hi Emil, Thank you for sharing the library. I only had a look at the documentation (which is really high standard) to try to determine the difference between LEAF and Boost.Outcome. It is my understanding that the main difference is that LEAF allows heap-free type erasure of error-related data at the expense of exploiting thread-local storage. Is this a fair summary? Regards, &rzej;