// Copyright (C) 2016-2018 T. Zachary Laine // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include #include //[ minimal_template template struct minimal_expr { static const boost::yap::expr_kind kind = Kind; Tuple elements; }; //] int main() { //[ minimal_template_manual_construction auto left = boost::yap::make_terminal(1); auto right = boost::yap::make_terminal(41); auto expr = boost::yap::make_expression< minimal_expr, boost::yap::expr_kind::plus >(left, right); //] //[ minimal_template_evaluation auto result = boost::yap::evaluate(expr); std::cout << result << "\n"; // prints "42" //] return 0; }