diff options
author | sharpeye <sharpeye@yandex-team.ru> | 2022-02-10 16:49:16 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:16 +0300 |
commit | 5ba59e58ca0ed3be83efee8a12c92725dfc5f051 (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /util/generic/scope.h | |
parent | 9a407601824f50398148409237b90de3f95b5ae3 (diff) | |
download | ydb-5ba59e58ca0ed3be83efee8a12c92725dfc5f051.tar.gz |
Restoring authorship annotation for <sharpeye@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'util/generic/scope.h')
-rw-r--r-- | util/generic/scope.h | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/util/generic/scope.h b/util/generic/scope.h index 0d7a3b13d3..b2c33af61e 100644 --- a/util/generic/scope.h +++ b/util/generic/scope.h @@ -1,43 +1,43 @@ #pragma once -#include <util/system/compiler.h> +#include <util/system/compiler.h> #include <util/system/defaults.h> - -#include <utility> -namespace NPrivate { - template <typename F> - class TScopeGuard { - public: - TScopeGuard(const F& function) +#include <utility> + +namespace NPrivate { + template <typename F> + class TScopeGuard { + public: + TScopeGuard(const F& function) : Function_{function} { } - TScopeGuard(F&& function) + TScopeGuard(F&& function) : Function_{std::move(function)} { } - TScopeGuard(TScopeGuard&&) = default; - TScopeGuard(const TScopeGuard&) = default; - - ~TScopeGuard() { - Function_(); - } - + TScopeGuard(TScopeGuard&&) = default; + TScopeGuard(const TScopeGuard&) = default; + + ~TScopeGuard() { + Function_(); + } + private: F Function_; }; - struct TMakeGuardHelper { - template <class F> + struct TMakeGuardHelper { + template <class F> TScopeGuard<F> operator|(F&& function) const { - return std::forward<F>(function); - } + return std::forward<F>(function); + } }; } - + // \brief `Y_SCOPE_EXIT(captures) { body };` // // General implementaion of RAII idiom (resource acquisition is initialization). Executes |