#pragma once namespace STG { template struct PropertyNotifierBase { virtual ~PropertyNotifierBase() = default; virtual void Notify(const T& oldValue, const T& newValue) = 0; }; template struct NotifierBase { virtual ~NotifierBase() = default; virtual void Notify(const T& value) = 0; }; }