#include #include #include "expression.hpp" int main() { // v1, v2, v3 are ValueExpression objects auto v1 = make_value(42); auto v2 = make_value(23); auto v3 = make_value(3.14); auto e1 = make_addition(std::move(v1), std::move(v2)); auto e2 = make_multiplication(std::move(e1), std::move(v3)); std::cout << "(42 + 23) * 3.14 = " << *e2->evaluate() << std::endl; return 0; }