From 17cd226a1531c3948ce12eca5c20fdcd96ec86cf Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Wed, 1 Oct 2025 13:19:35 +0200 Subject: Small feature for basic RAII guard ensurance in C :) --- modules/core/c++/raii_guard.hpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 modules/core/c++/raii_guard.hpp diff --git a/modules/core/c++/raii_guard.hpp b/modules/core/c++/raii_guard.hpp new file mode 100644 index 0000000..fe17781 --- /dev/null +++ b/modules/core/c++/raii_guard.hpp @@ -0,0 +1,26 @@ +#pragma once + +namespace saw { +template +class raii_guard { +private: + Constr constr_; + Destr destr_; +public: + raii_guard(Constr&& constr__, Destr&& destr__): + constr_{std::move(constr__)}, + destr_{std::move(destr__)} + { + constr_(); + } + + ~raii_guard(){ + destr()_; + } +}; + +template +raii_guard make_raii_guard(Constr&& constr, Destr&& destr){ + return {std::move(constr),std::move(destr)}; +} +} -- cgit v1.2.3