| 15 | |
| 16 | |
| 17 | int main() { |
| 18 | |
| 19 | { |
| 20 | |
| 21 | //! [reverse_transform] |
| 22 | auto to_str = [](auto const& x) { |
| 23 | std::stringstream ss; |
| 24 | ss << x; |
| 25 | return ss.str(); |
| 26 | }; |
| 27 | |
| 28 | auto xs = hana::make_tuple(1, 2.2, 'a', "bcde"); |
| 29 | |
| 30 | BOOST_HANA_RUNTIME_CHECK( |
| 31 | hana::reverse(hana::transform(xs, to_str)) == hana::make_tuple("bcde", "a", "2.2", "1") |
| 32 | ); |
| 33 | //! [reverse_transform] |
| 34 | |
| 35 | //! [reverse_transform_copy] |
| 36 | hana::reverse( |
| 37 | hana::transform(xs, to_str) // <-- copy into reverse(...) here? |
| 38 | ); |
| 39 | //! [reverse_transform_copy] |
| 40 | |
| 41 | //! [reverse_transform_move] |
| 42 | hana::reverse( |
| 43 | hana::transform(xs, to_str) // <-- nope, move from the temporary instead! |
| 44 | ); |
| 45 | //! [reverse_transform_move] |
| 46 | |
| 47 | }{ |
| 48 | |
| 49 | //! [effects] |
| 50 | auto r = hana::any_of(hana::make_tuple("hello"s, 1.2, 3), [](auto x) { |
| 51 | return std::is_integral<decltype(x)>{}; |
| 52 | }); |
| 53 | |
| 54 | BOOST_HANA_CONSTANT_CHECK(r); |
| 55 | //! [effects] |
| 56 | |
| 57 | { |
| 58 | |
| 59 | //! [effects.codegen] |
| 60 | auto xs = hana::make_tuple("hello"s, 1.2, 3); |
| 61 | auto pred = [](auto x) { return std::is_integral<decltype(x)>{}; }; |
| 62 | |
| 63 | auto r = hana::bool_c< |
| 64 | decltype(pred(xs[0_c]))::value ? true : |
| 65 | decltype(pred(xs[1_c]))::value ? true : |
| 66 | decltype(pred(xs[2_c]))::value ? true : |
| 67 | false |
| 68 | >; |
| 69 | |
| 70 | BOOST_HANA_CONSTANT_CHECK(r); |
| 71 | //! [effects.codegen] |
| 72 | |
| 73 | } |
| 74 | |