#pragma once #include #include #include #include "delegates.hpp" #include "typedefs.hpp" namespace util { class RunnablesList { int nextid = 1; std::unordered_map runnables; public: observer_handler add(runnable callback) { int id = nextid++; runnables[id] = std::move(callback); return observer_handler(new int(id), [this](int* id) { //-V508 runnables.erase(*id); delete id; }); } void notify() { for (auto& entry : runnables) { entry.second(); } } }; }