summaryrefslogtreecommitdiff
path: root/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h')
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h64
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
-