Commit Graph

433 Commits

Author SHA1 Message Date
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
dbea6d3ed5 Fix compile_tests link. 2016-12-07 20:01:20 -06:00
Zach Laine
e08fc628ff Preserve the expression template passed as Expr to transform, instead of converting it to an expression<>. 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
4d067bd072 Cruft removal. 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
44f5292e49 Add missing assembly to code_gen_samples.cpp. 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
5e845452bf Change is_expr to accept the Expr concept instead of just an expression<>. 2016-12-07 20:01:19 -06:00
Zach Laine
1d31de114c Change print() to print the Expr concept, not just expression<>s. 2016-12-07 20:01:19 -06:00
Zach Laine
0b2e571a9b Add lazy_vector example (needs optimization). 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
7efb64403f Add Boost license. 2016-12-07 20:01:19 -06:00
Zach Laine
3c6570055f Remove detail::kind_of. 2016-12-07 20:01:19 -06:00
Zach Laine
7d243f40b0 Add calc examples. 2016-12-07 20:01:18 -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
e8eae00afe Add -Wall; fix warnings. 2016-12-07 20:01:18 -06:00
Zach Laine
de4086622e Add a first example, hello_world. 2016-12-07 20:01:18 -06:00
Zach Laine
96927a994c Support moves in transform(). 2016-12-07 20:01:18 -06:00
Zach Laine
cb4d68f817 Grooming. 2016-12-07 20:01:18 -06:00
Zach Laine
316da24c25 Add naive transform(). 2016-12-07 20:01:18 -06:00
Zach Laine
9e9e306677 Add function terminal case to call_expr test. 2016-12-07 20:01:18 -06:00
Zach Laine
ed1b183ecd Fix bitwise_xor_assign/subscript copy-paste error. 2016-12-07 20:01:18 -06:00
Zach Laine
19bdb22af8 Add more functions to code_gen_samples. 2016-12-07 20:01:18 -06:00
Zach Laine
93c4cb30a4 Make depth_stress_test* less extreme. 2016-12-07 20:01:18 -06:00
Zach Laine
3461b31f78 Print out the assembly generated for parts of code_gen_samples using lldb/gdb. 2016-12-07 20:01:17 -06:00
Zach Laine
e5872cfaf4 code_gen_samples to new perf directory. 2016-12-07 20:01:17 -06:00
Zach Laine
5805e55f8d Add a code-gen sample, useful for getting the assembly generated for proto17 vs. straight c++ expressions. 2016-12-07 20:01:17 -06:00
Zach Laine
2f4f1a2858 Extend reference_returns test to cover placholder expressions. 2016-12-07 20:01:17 -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
9563d58153 depth_stress_test -> depth_stress_test_{left,right} 2016-12-07 20:01:17 -06:00
Zach Laine
381447fb63 rhs_value_type* -> operand_value_type* 2016-12-07 20:01:17 -06:00
Zach Laine
7cb4405c08 Update CMakeLists.txt files for Linux builds. 2016-12-07 20:01:17 -06:00
Zach Laine
55bcc46041 Refactor the call eval to remove a copy; thanks to Louis Dionne. 2016-12-07 20:01:17 -06:00
Zach Laine
1fbc68f611 Add test of templated transform_expression. 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
db5f016146 Update user_expression_transform test to highlight an error in transform matching. 2016-12-07 20:01:17 -06:00
Zach Laine
df97a1bcc1 Fix roken user_eval_expression_as test. 2016-12-07 20:01:16 -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