#ifndef VARIABLE_HPP #define VARIABLE_HPP #include "Operator.hpp" template struct Variable : public Operator { Variable(unsigned int id) : _id(id) { } Variable(const Variable& other) : _id(other._id) { } unsigned int id() const { return _id; } T operator() (const std::vector< Expression* >& args, const VariableAssignment& ass) const { //assert(args.size() == 0) return ass[*this]; } private: const unsigned int _id; }; #endif