summaryrefslogtreecommitdiff
path: root/src/scope_guard.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/scope_guard.h')
-rw-r--r--src/scope_guard.h56
1 files changed, 0 insertions, 56 deletions
diff --git a/src/scope_guard.h b/src/scope_guard.h
deleted file mode 100644
index 3a7aa01b..00000000
--- a/src/scope_guard.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2019 Roman Perepelitsa.
-//
-// This file is part of GitStatus.
-//
-// GitStatus is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// GitStatus is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with GitStatus. If not, see <https://www.gnu.org/licenses/>.
-
-#ifndef ROMKATV_GITSTATUS_SCOPE_GUARD_H_
-#define ROMKATV_GITSTATUS_SCOPE_GUARD_H_
-
-#include <utility>
-
-#define ON_SCOPE_EXIT(capture...) \
- auto GITSTATUS_INTERNAL_CAT(_gitstatus_scope_guard_, __COUNTER__) = \
- ::gitstatus::internal_scope_guard::ScopeGuardGenerator() = [capture]()
-
-#define GITSTATUS_INTERNAL_CAT_I(x, y) x##y
-#define GITSTATUS_INTERNAL_CAT(x, y) GITSTATUS_INTERNAL_CAT_I(x, y)
-
-namespace gitstatus {
-namespace internal_scope_guard {
-
-void Undefined();
-
-template <class F>
-class ScopeGuard {
- public:
- explicit ScopeGuard(F f) : f_(std::move(f)) {}
- ~ScopeGuard() { std::move(f_)(); }
- ScopeGuard(ScopeGuard&& other) : f_(std::move(other.f_)) { Undefined(); }
-
- private:
- F f_;
-};
-
-struct ScopeGuardGenerator {
- template <class F>
- ScopeGuard<F> operator=(F f) const {
- return ScopeGuard<F>(std::move(f));
- }
-};
-
-} // namespace internal_scope_guard
-} // namespace gitstatus
-
-#endif // ROMKATV_GITSTATUS_SCOPE_GUARD_H_