|
Boost : |
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2023-11-26 14:37:09
On 11/26/23 15:53, Peter Dimov via Boost wrote:
> Andrey Semashev wrote:
>> Specifically regarding Boost.Scope, the extensions I made are what makes
>> these components practically useful in my real code base. That is, I
>> find the standard components too limiting or inconvenient to be useful
>> in practice.
>
> You have a section in the documentation that compares Scope to ScopeExit,
> but I don't see a comparison against the proposed standard components.
>
> It might be useful to have one, where the rationale for the additions could
> naturally fit.
I can add a section discussing differences from the Library Fundamentals
TS, though maybe not in the form of a table.
https://github.com/Lastique/scope/issues/5
I listed the extensions in my initial announcement of the library. Here
they are, for convenience:
* A new scope_final scope guard, which is a more lightweight alternative
to scope_exit. It is accompanied with the BOOST_SCOPE_FINAL macro that
allows to simplify scope guard declaration syntax.
* Scope guards can be activated/deactivated multiple times.
* Scope guards can be created inactive initially.
* Scope guard factory functions, for compatibility with C++11.
* Support for custom condition functions for checking scope guards.
This, for example, allows one to check for error codes instead of
exceptions in scope_fail/scope_success.
* Support for optional resource traits in unique_resource wrapper, which
improves usage with resources having unallocated values.
* unique_resource supports swapping.
* unique_resource supports dereferencing for any resource types that
support dereferencing, not only pointers.
* More flexible constructors for unique_resource.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk