#pragma once #include namespace crepe { template class ValueBroker { public: virtual void set(const T &); virtual const T & get(); typedef std::function setter_t; typedef std::function getter_t; private: T & value; setter_t setter; getter_t getter; public: ValueBroker(T &, const setter_t &, const getter_t &); ValueBroker(T &); }; } #include "ValueBroker.hpp"