2
0
mirror of https://github.com/boostorg/yap.git synced 2026-01-28 07:42:17 +00:00

18 Commits

Author SHA1 Message Date
Zach Laine
80ca554434 Use Boost.HOF to implement the conditional matching logic behind transform().
Wrap the first argument to transform() by calling as_expr() on it, so that
as_expr() is rarely needed outside of transform().

Continue to accept rvalue transform objects in the top-level transform(), but
do not perfectly forward it into the implementation details of transform().
This fixes the potential bug of stealing the movable contents of a transform.

Fixes #62.
2018-02-22 18:56:51 -06:00
Zach Laine
19c36c9b8d Add Boost.HOF headers locally, as a stop-gap until the next Boost release
officially containing HOF.
2018-02-21 20:20:03 -06:00
Zach Laine
cb10bae121 Correct subtle error in value(). When value() is given a terminal, it must
return an lvalue reference if the terminal's tuple's single element is an
lvalue reference.
2018-02-20 23:24:49 -06:00
Zach Laine
c0dbeb3d3c Clang format. 2018-02-20 23:21:15 -06:00
Zach Laine
20e4faa593 Clang format in include/ and test/.
Fixes #42.
2018-02-20 01:15:52 -06:00
Zach Laine
32de54e53d Cruft removal. 2018-02-17 00:21:17 -06:00
Zach Laine
b652079acb Take any hana::IntegralConstant as the "i" argument to get().
Fixes #36.
2018-02-17 00:14:26 -06:00
Zach Laine
8712988c25 Add expr_tag template to handle expr_kind <-> tag mapping.
Fixes #49.
2018-02-16 22:34:09 -06:00
Zach Laine
0f4e144edc Add terminal transform example; not working due to longstanding call_expr tag
transform matching bug.
2018-02-15 23:02:26 -06:00
Zach Laine
27380020d7 Revert "Transform terminals before they are unwrapped and given as arguments to"
This reverts commit 4e68505bab.

Fixes #40.
2018-02-15 21:24:20 -06:00
Zach Laine
191aa0c0ae Consolidate expression<> code into a single header.
Fixes #37.
2018-02-15 19:17:10 -06:00
Zach Laine
e1fcacccdd detail::tag_for() -> to_tag(); add its compliment, to_kind(). 2018-02-15 18:53:01 -06:00
Zach Laine
8282c4b10e Add Boost license copyright headers to all C++ files.
Fixes #31.
2018-02-15 18:07:48 -06:00
Zach Laine
63e88fe713 Add test of comma operator order of evaluation and ability to return void.
Fixes #34
2018-02-14 21:10:38 -06:00
Zach Laine
2adaeb8813 Remove customization point-based and their implicit tranformations,
evaluate_as(), and BOOST_YAP_CONVERSION_OPERATOR_TEMPLATE.

Fixes #29
Fixes #30
2018-02-14 20:32:00 -06:00
Zach Laine
ca22c8a10a Doc copy editing, and add explicit values to expr_kind enumerators. 2018-02-14 17:50:29 -06:00
Zach Laine
b6d53d153d Changes based on Part 2 of Steven Watanabe's review. 2018-02-14 17:50:29 -06:00
Zach Laine
d10b23e3b0 boost -> include/boost 2018-02-14 17:50:29 -06:00