[/ / Copyright 2023-2024 Andrey Semashev / / Distributed under the Boost Software License, Version 1.0. / (See accompanying file LICENSE_1_0.txt or copy at / https://www.boost.org/LICENSE_1_0.txt) / / This document is a part of Boost.Scope library documentation. /] [section:changelog Changelog] [heading Boost 1.85] The library has been accepted into Boost. Updates according to Boost [@https://lists.boost.org/Archives/boost/2024/01/255717.php review] comments and conditions: * Renamed `scope_final` to `defer_guard` and `BOOST_SCOPE_FINAL` to `BOOST_SCOPE_DEFER`. Thanks to Peter Dimov for the [@https://lists.boost.org/Archives/boost/2023/12/255501.php suggestion] during the review. The name "defer" is being used in other programming languages (Go, Swift and even [@https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm proposed] for inclusion in C) for the functionality similar to `scope_final`. * Removed `release` member from the scope guard types. This method was equivalent to `set_active(false)` and existed for compatibility with the C++ Extensions for Library Fundamentals TS. Boost review conclusion indicated that conformance with the TS is not a worthy goal. * In `unique_resource`, added `explicit operator bool` as a way to test if the resource in an allocated state, similar to the `allocated` method. This was suggested by Dmitry Arkhipov before the review. Note that the operator does not test the resource value, which is similar to `std::optional`. * Added [link scope.unique_resource.simplified_resource_traits `unallocated_resource`] class template for simplifying declaration of resource traits for `unique_resource`. The idea of a more compact `unique_resource` declaration was presented by Janko Dedic in his [@https://lists.boost.org/Archives/boost/2023/11/255424.php review]. * Added documentation sections describing differences between Boost.Scope and Library Fundamentals TS (see [link scope.scope_guards.comparison_with_library_fundamentals_ts here] and [link scope.unique_resource.comparison_with_library_fundamentals_ts here]). * [link scope.unique_resource `unique_resource`] move constructor was modified to preserve the original state of the source argument in case of exception. This deviates from the TS behavior, which specifies to invoke the deleter on the move-constructed resource, but it means the move constructor now maintains strong exception guarantee. * Enforced compile-time correctness checks for [link scope.unique_resource `unique_resource`] resource traits specified by user. Improved description of requirements for the resource traits. * Many documentation improvements. [heading 0.1] Initial release for Boost review. [endsect]