#ifndef MIN_H #define MIN_H #include "Expression.h" template struct Min : public Expression { Min(Expression* left, Expression* right) : _left(left), _right(right) { } T eval(const std::map& mappings) const { T left = _left->eval(mappings); T right = _right->eval(mappings); return left < right ? left : right; } private: Expression* _left; Expression* _right; }; #endif