class utils::OnEnd
Overview
Helper class that performs an action when it is destroyed. More…
#include <OnEnd.h> class OnEnd { public: // typedefs typedef std::function<void()> Callback; // construction OnEnd(Callback F); OnEnd(const OnEnd&); OnEnd(OnEnd&&); ~OnEnd(); // methods OnEnd& operator=(const OnEnd&); OnEnd& operator=(OnEnd&&); };
Detailed Documentation
Helper class that performs an action when it is destroyed.
Motivation:
When a function has many boundary conditions and returns in multiple places.
Example usage:
bool Init() { m->device->LockGUI(); // Locks GUI OnEnd _([&]() { m->device->UnlockGUI(); }); if (condition_1) return false; // GUI is unlocked if (condition_2) return false; // GUI is unlocked return true; // GUI is unlocked }
Typedefs
typedef std::function<void()> Callback
Callback is a void function taking 0 arguments.
Construction
OnEnd(Callback F)
Constructor sets Callback.
~OnEnd()
Destructor calls Callback.