1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#pragma once #include <functional> using Callback = std::function<void()>; template <typename Event> class IObservable { public: virtual ~IObservable() = default; virtual void listen() const = 0; virtual void attach(const Event &event, Callback callback) = 0; virtual void notify(const Event &event) const = 0; };