2
0
mirror of https://github.com/boostorg/leaf.git synced 2026-02-09 23:22:29 +00:00
Files
leaf/leaf.adoc
2018-09-16 23:13:34 -07:00

40 lines
1.7 KiB
Plaintext

:sourcedir: .
:last-update-label!:
:icons: font
= Low-latency Error Augmentation Framework
For C++11
:toclevels: 3
:toc: left
:toc-title:
[abstract]
== Abstract
(Note: LEAF is not part of Boost. Please post questions and suggestions on the Boost Developers Mailing List).
Robust error handling requires that error handling contexts can access various information they need to deal with each failure. This is a difficult problem to solve, because failures are often detected in low-level libraries which can not provide all of the necessary information. For example, handling a file I/O error typically requires the name of the file for display, yet the reporting context doesn't have a file name: it only has a file handle.
Even if the error-detection context has all the needed information, transporting it many levels up the call chain to reach a context capable to deal with the failure is tricky, especially in low-latency environments where dynamic memory allocations must be avoided.
LEAF provides a generic memory-allocation-free solution to this problem. It is compatible with any error-handling API, and can work with or without exception handling.
== Distribution
LEAF is distributed under the http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0].
The source code is available in https://github.com/zajo/leaf[this GitHub repository].
== Building
LEAF is a header-only library and it requires no building. The unit tests use Boost Build, but the library itself has no dependency on Boost or any other library.
== Portability
LEAF requires a {CPP}-11 compiler. See unit test matrix at https://travis-ci.org/zajo/leaf[Travis-CI].
== Tutorial
[source,c++]
----
----