2
0
mirror of https://github.com/boostorg/yap.git synced 2026-02-22 16:02:10 +00:00

Add reference-to-expr expr_kind expr_ref; expressions used in other expressions are now captured by reference.

This commit is contained in:
Zach Laine
2016-11-22 17:04:05 -06:00
parent 3a69ba1869
commit 29a7bedc00
23 changed files with 557 additions and 313 deletions

View File

@@ -105,7 +105,7 @@ TEST(user_expression_transform, test_user_expression_transform)
>,
term<user::number>
>
> expr = k * a * x + y;
> expr = term<user::number>{{2.0}} * user::number{1.0} * user::number{42.0} + user::number{3.0};
user::number result = expr;
EXPECT_EQ(result.value, 87);
@@ -124,7 +124,7 @@ TEST(user_expression_transform, test_user_expression_transform)
>,
term<user::number>
>
> expr = a * x + y;
> expr = term<user::number>{{1.0}} * user::number{42.0} + user::number{3.0};
user::number result = expr;
EXPECT_EQ(result.value, 55);
@@ -149,14 +149,17 @@ TEST(user_expression_transform, test_user_expression_transform)
>
>
>
> expr = k * (a * x + y);
> expr = term<user::number>{{2.0}} * (term<user::number>{{1.0}} * user::number{42.0} + user::number{3.0});
user::number result = expr;
EXPECT_EQ(result.value, 110);
}
{
auto expr = (a * x + y) * (a * x + y) + (a * x + y);
auto expr =
(term<user::number>{{1.0}} * user::number{42.0} + user::number{3.0}) *
(term<user::number>{{1.0}} * user::number{42.0} + user::number{3.0}) +
(term<user::number>{{1.0}} * user::number{42.0} + user::number{3.0});
user::number result = expr;