#pragma once #include "tl/functional.h" namespace tl { class epilogue { public: epilogue(function i_function) noexcept : m_function(std::move(i_function)) { } ~epilogue() noexcept { m_function(); } private: function m_function; }; }