Releases: boostorg/leaf
Releases · boostorg/leaf
1.82.0
1.81.0
This release includes:
- Fixes for compile errors in tricky configurations.
- A fix for an API defect,
throw leaf::exception(...)
now becomesleaf::throw_exception(...)
. - Improvements to the TLS array support for embedded platforms.
- Improved configuration coverage for unit tests.
1.81.0-prerelease
First conan release. Minor improvements over version 1.80.0.
Changes based on Boost review feedback and other improvements
This release incorporates the feedback of the Boost Review, changes to improve potential integration with Boost, simplified asynchronous API. Changes:
- The
is_e_type
trait is deleted. Any value type can be used as an error type. - Error handlers can now be captured in a tuple and used with
try_handle_some
,try_handle_all
ortry_catch
. Theremote_
prefixed error handling functions are removed. preload
,defer
, andaccumulate
are all merged into a single API calledon_error
.match
is now compatible withstd::error_code
, e.g.match<std::error_code, 42>
.- Error handlers that take arguments of exception types will automatically catch exceptions;
catch_
is now optional, primarily used to catch more than one exception type. - Error handlers can now take mutable reference (and mutable pointer) arguments.
augment_id
is renamed toerror_monitor
.- All
LEAF_XXXX
macros are renamed toBOOST_LEAF_XXXX
.
Configuration improvements, benchmark
This release includes automatic detection for LEAF_NO_EXCEPTIONS
and new benchmark program.
Optimizations
This release includes minor optimizations, adds a unit test for the error_id
generation logic, and increased Travis CI coverage on Apple platforms.
Improved portability
This release improves the support for -fno-exceptions
and adds support for LEAF_NO_THREADS
, which disables all multi-thread code.
Optimizations
Optimizations:
- No guard variables generated by the compiler for
static
/thread_local
objects. - Simpler, more optimal
result<T>
implementation.
Documentation improvements
Patch release for better documentation, Travis and AppVeyor tweaks.
Minor new features and tweaks
In this release:
- Added
operator->
support toresult<T>
; - Added a new example to demonstrate using LEAF with
outcome::result<T>
instead ofleaf::result<T>
; LEAF_AUTO
uses.value()
instead ofoperator*
to access the value of aresult<T>
type;- Fixed a bug in the single header generation script, now headers are included only once;
- Documentation fixes and refinements.