virtual void set(MemoryAddress index, MemoryValue value)=0
virtual bool is_valid_address(const MemoryValue &address)
virtual const MemoryValue & get(MemoryAddress index) const =0
virtual ~MemoryInterface()=default
virtual uint16_t get_space_id() const =0
virtual std::unique_ptr< MemoryInterface > make_memory(uint16_t space_id)=0
virtual ~MemoryProviderInterface()=default
constexpr auto MemoryAddressTag
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept