diff options
author | Carlo Zancanaro <carlo@carlo-laptop> | 2012-04-06 14:02:26 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@carlo-laptop> | 2012-04-06 14:02:26 +1000 |
commit | 5d7252681da3b26845fc4e5dcf0b0e94ed9fabb1 (patch) | |
tree | 20bc0a6b62390aabda0b8c446d3a2177990863f6 /impl/Sum.h | |
parent | 83e2c574bdefe2d040cdfbe20a73380a0f0123dd (diff) |
Move everything into impl/ and add a Makefile.
Diffstat (limited to 'impl/Sum.h')
-rw-r--r-- | impl/Sum.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/impl/Sum.h b/impl/Sum.h new file mode 100644 index 0000000..bf04669 --- /dev/null +++ b/impl/Sum.h @@ -0,0 +1,22 @@ +#ifndef SUM_H +#define SUM_H + +#include "Expression.h" + +template<class T> +struct Sum : public Expression<T> { + Sum(Expression<T>* left, Expression<T>* right) + : _left(left), _right(right) { } + + T eval(const std::map<std::string, T>& mappings) const { + T left = _left->eval(mappings); + T right = _right->eval(mappings); + return left + right; + } + + private: + Expression<T>* _left; + Expression<T>* _right; +}; + +#endif |