diff options
Diffstat (limited to 'graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h')
-rw-r--r-- | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h | 64 |
1 files changed, 37 insertions, 27 deletions
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h index 024b700b4a..9af5e17107 100644 --- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h +++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h @@ -14,32 +14,44 @@ #include <type_traits> #include <utility> -namespace lsp { -namespace detail { +namespace lsp +{ +namespace detail +{ -template <typename Callable> class scope_exit { - Callable ExitFunction; - bool Engaged = true; // False once moved-from or release()d. + template<typename Callable> + class scope_exit + { + Callable ExitFunction; + bool Engaged = true; // False once moved-from or release()d. -public: - template <typename Fp> - explicit scope_exit(Fp &&F) : ExitFunction(std::forward<Fp>(F)) {} + public: + template<typename Fp> + explicit scope_exit(Fp&& F) : ExitFunction(std::forward<Fp>(F)) + { + } - scope_exit(scope_exit &&Rhs) - : ExitFunction(std::move(Rhs.ExitFunction)), Engaged(Rhs.Engaged) { - Rhs.release(); - } - scope_exit(const scope_exit &) = delete; - scope_exit &operator=(scope_exit &&) = delete; - scope_exit &operator=(const scope_exit &) = delete; + scope_exit(scope_exit&& Rhs) : ExitFunction(std::move(Rhs.ExitFunction)), Engaged(Rhs.Engaged) + { + Rhs.release(); + } + scope_exit(scope_exit const&) = delete; + scope_exit& operator=(scope_exit&&) = delete; + scope_exit& operator=(scope_exit const&) = delete; - void release() { Engaged = false; } + void release() + { + Engaged = false; + } - ~scope_exit() { - if (Engaged) - ExitFunction(); - } -}; + ~scope_exit() + { + if (Engaged) + { + ExitFunction(); + } + } + }; } // end namespace detail @@ -48,12 +60,10 @@ public: // returned object is kept). // // Interface is specified by p0052r2. -template <typename Callable> - detail::scope_exit<typename std::decay<Callable>::type> -make_scope_exit(Callable &&F) { - return detail::scope_exit<typename std::decay<Callable>::type>( - std::forward<Callable>(F)); +template<typename Callable> +detail::scope_exit<typename std::decay<Callable>::type> make_scope_exit(Callable&& F) +{ + return detail::scope_exit<typename std::decay<Callable>::type>(std::forward<Callable>(F)); } } // end namespace lsp - |