2
0
mirror of https://github.com/boostorg/yap.git synced 2026-02-27 05:32:10 +00:00
Commit Graph

47 Commits

Author SHA1 Message Date
Zach Laine
a0913e71d5 Add is{, not} expression static_asserts to relevant API. 2016-12-07 20:01:23 -06:00
Zach Laine
31b81ddfc0 Add right() test. 2016-12-07 20:01:23 -06:00
Zach Laine
89cc602e69 Add left() test. 2016-12-07 20:01:23 -06:00
Zach Laine
a57e2692f6 Add value() test. 2016-12-07 20:01:23 -06:00
Zach Laine
5c3688a1c3 Do {left,right} on the refered-to object when the arg is an expr_ref in {left,right}(), and use remove_cv_ref on Expr throughout {value,left,right}(). 2016-12-07 20:01:22 -06:00
Zach Laine
820d614865 Add deref(). 2016-12-07 20:01:22 -06:00
Zach Laine
b0c56cac32 auto -> decltype(auto) on transform(). 2016-12-07 20:01:22 -06:00
Zach Laine
e36bc36c5a Add detail::expr_arity and expression tag types. 2016-12-07 20:01:22 -06:00
Zach Laine
804aaaebef Add es_expr(). 2016-12-07 20:01:22 -06:00
Zach Laine
fc075fb808 Restore the previous single version of make_terminal(). 2016-12-07 20:01:21 -06:00
Zach Laine
42e029a29c Add op_string(). 2016-12-07 20:01:21 -06:00
Zach Laine
09608ed3d5 Correct lvalue/rvalue confusion in default transform code and make_terminal(). 2016-12-07 20:01:21 -06:00
Zach Laine
71755916e7 Correct tempalte paramater confusion in the terminal specialization. 2016-12-07 20:01:21 -06:00
Zach Laine
78c511468f Get rid of initial param in operator macros; remove operator,() as a separate macro. 2016-12-07 20:01:20 -06:00
Zach Laine
e979c07037 Generalize all expression-creating code to use a given expression template. 2016-12-07 20:01:20 -06:00
Zach Laine
ae35d5b552 Implement expression::{value,left,right}() in terms of the free versions. 2016-12-07 20:01:20 -06:00
Zach Laine
37940c5ec1 Remove the expr_ref specialization of expression. 2016-12-07 20:01:20 -06:00
Zach Laine
dca3c2712a Replace .value calls with elaborated calls to the free value(). 2016-12-07 20:01:20 -06:00
Zach Laine
a7efab8a1a Replace half-baked BOOST_PROTO17_USER_MEMBER_OPERATOR_IMPL with fully reusable macros for free operators and unary and binary members. 2016-12-07 20:01:20 -06:00
Zach Laine
ad85e854f0 Remove moot TODOs. 2016-12-07 20:01:20 -06:00
Zach Laine
d670025ec3 Simplify lazy_vector.cpp with a new convenience macro. 2016-12-07 20:01:20 -06:00
Zach Laine
29a7bedc00 Add reference-to-expr expr_kind expr_ref; expressions used in other expressions are now captured by reference. 2016-12-07 20:01:20 -06:00
Zach Laine
3a69ba1869 Remove left(), right() from the terminal specialization of expression<>. 2016-12-07 20:01:19 -06:00
Zach Laine
0033b42734 Replace parameter pack in expression<> with a single Tuple param. 2016-12-07 20:01:19 -06:00
Zach Laine
175d0d2f28 Remove the expression ctor taking individual values; add specialization for terminal that does. 2016-12-07 20:01:19 -06:00
Zach Laine
514fd94b1e Add reference qualified overloaded value(), left(), and right() expression members, and free versions of same. 2016-12-07 20:01:19 -06:00
Zach Laine
5b7cd4c71e typename operand_type<>::type -> operand_type_t<> 2016-12-07 20:01:19 -06:00
Zach Laine
f52633f0fb Add expression_function. 2016-12-07 20:01:18 -06:00
Zach Laine
e7957852dc 1-based placeholders. 2016-12-07 20:01:18 -06:00
Zach Laine
316da24c25 Add naive transform(). 2016-12-07 20:01:18 -06:00
Zach Laine
15e70fefe1 Pass individual args through evaluate*(), instead of making a tuple of them. 2016-12-07 20:01:17 -06:00
Zach Laine
d1c3734945 Remove use of eval_expression_as on subexpressions; add transform_expression. 2016-12-07 20:01:17 -06:00
Zach Laine
c48e7fb8fa decltype(auto) -> auto 2016-12-07 20:01:16 -06:00
Zach Laine
9547eb1b6d Add remaining free operators; remove stream output operator support. 2016-12-07 20:01:16 -06:00
Zach Laine
42af863c4d Move last bits of sketch.cpp to standalone compile test. 2016-12-07 20:01:16 -06:00
Zach Laine
863f5fe655 rhs_type -> operand_type 2016-12-07 20:01:16 -06:00
Zach Laine
112466ad6e Add BOOST_PROTO17_CONVERSION_OPERATOR_TEMPLATE. 2016-12-07 20:01:15 -06:00
Zach Laine
d6df84fb84 Use eval_expression_as() in the recursive cases of default_eval_expression(). 2016-12-07 20:01:14 -06:00
Zach Laine
8419dd32a9 Add simple expression transform test. 2016-12-07 20:01:14 -06:00
Zach Laine
ca4856f3b5 Add unary operators. 2016-12-07 20:01:14 -06:00
Zach Laine
7cc60e87d4 Add remaining binary operators. 2016-12-07 20:01:14 -06:00
Zach Laine
2ab89e9851 Cruft removal. 2016-12-07 20:01:14 -06:00
Zach Laine
f621e86cdf auto -> decltype(auto) 2016-12-07 20:01:14 -06:00
Zach Laine
f9391f2a7f Add call operator support. 2016-12-07 20:01:14 -06:00
Zach Laine
bfb16509bd evaluate_expression_as -> eval_expression_as 2016-12-07 20:01:14 -06:00
Zach Laine
2e9eeb9c1e Initial version of evaluate_expression_as() as a customization point (hopefully to be improved). 2016-12-07 20:01:14 -06:00
Zach Laine
63922a7cfd Factor out detail/default_eval.hpp and expression.hpp. 2016-12-07 20:01:14 -06:00