common: scope_exit: Add a cancellable ScopeExit macro.

This commit is contained in:
bunnei 2021-01-31 16:54:10 -08:00
parent ff3c7c068b
commit 18175c71ed
1 changed files with 6 additions and 0 deletions

View File

@ -49,3 +49,9 @@ ScopeExitHelper<Func> ScopeExit(Func&& func) {
* \endcode
*/
#define SCOPE_EXIT(body) auto CONCAT2(scope_exit_helper_, __LINE__) = detail::ScopeExit([&]() body)
/**
* This macro is similar to SCOPE_EXIT, except the object is caller managed. This is intended to be
* used when the caller might want to cancel the ScopeExit.
*/
#define SCOPE_GUARD(body) detail::ScopeExit([&]() body)