| 72 | }; |
| 73 | |
| 74 | constexpr auto test_constexpr() noexcept |
| 75 | { |
| 76 | struct receiver |
| 77 | { |
| 78 | using receiver_concept = ex::receiver_tag; |
| 79 | constexpr void set_value(int const j) && noexcept |
| 80 | { |
| 81 | i = j; |
| 82 | } |
| 83 | void set_error(std::exception_ptr) && noexcept {} |
| 84 | int& i; |
| 85 | }; |
| 86 | int i = 0; |
| 87 | auto op = ex::connect(ex::just(666) |
| 88 | | ex::bulk(ex::par, |
| 89 | 42, |
| 90 | [](std::size_t item, int& val) noexcept |
| 91 | { val += static_cast<int>(item); }), |
| 92 | receiver{i}); |
| 93 | ex::start(op); |
| 94 | return i; |
| 95 | } |
| 96 | static_assert(test_constexpr() == 666 + 42 * 41 / 2); |
| 97 | |
| 98 | TEST_CASE("bulk returns a sender", "[adaptors][bulk]") |