#pragma once #include typedef struct raii { std::function endtask = nullptr; raii (std::function pFunc = nullptr): endtask (pFunc) {} ~raii () { if (endtask) endtask (); } raii (const raii &) = delete; raii (raii &&) = delete; } destruct;