diff --git a/.gitignore b/.gitignore index 48d1285..4b06a99 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ +*.orig *.toml boost_* Resources diff --git a/include/Defer.h b/include/Defer.h new file mode 100644 index 0000000..c037cac --- /dev/null +++ b/include/Defer.h @@ -0,0 +1,18 @@ +#pragma once + +#include + +template +class Defer final { +public: + Defer(FnT fn) + : mFunction([&fn] { (void)fn(); }) { } + ~Defer() { + if (mFunction) { + mFunction(); + } + } + +private: + std::function mFunction; +};