From f52633f0fb793705f8d26e5cf84ba20ff91082e0 Mon Sep 17 00:00:00 2001 From: Zach Laine Date: Fri, 18 Nov 2016 19:46:49 -0600 Subject: [PATCH] Add expression_function. --- expression.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/expression.hpp b/expression.hpp index 48a9814..d082a89 100644 --- a/expression.hpp +++ b/expression.hpp @@ -289,6 +289,20 @@ namespace boost::proto17 { }; } + template + struct expression_function + { + template + decltype(auto) operator() (U &&... u) + { return evaluate(expr, static_cast(u)...); } + + expression expr; + }; + + template + auto make_expression_function (expression && expr) + { return expression_function{std::move(expr)}; } + } #include "detail/default_eval.hpp"