#pragma once #include #include template class Event { public: Event& operator+=(T& act) { events.push_back(act); return *this; } const Event& operator()()const { for (auto& event : events) event(); return *this; } void clear() { events.clear(); } inline size_t size() const {return events.size();} protected: std::vector events; };