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 |
|