| 3804 | |
| 3805 | template <typename generator_type_> |
| 3806 | static void pipeline_cpp20_coroutine(bm::State &state) { |
| 3807 | std::uint64_t sum = 0, count = 0; |
| 3808 | for (auto _ : state) { |
| 3809 | auto range = for_range_generator<generator_type_>(pipe_start, pipe_end); |
| 3810 | auto filtered_twos = filter_generator<generator_type_>(std::move(range), is_power_of_two); |
| 3811 | auto filtered_threes = filter_generator<generator_type_>(std::move(filtered_twos), is_power_of_three); |
| 3812 | auto factors = prime_factors_generator<generator_type_>(std::move(filtered_threes)); |
| 3813 | // Reduce |
| 3814 | sum = 0, count = 0; |
| 3815 | for (auto factor : factors) sum += factor, count++; |
| 3816 | if (count != 84 || sum != 645) state.SkipWithError("Incorrect result"); |
| 3817 | } |
| 3818 | } |
| 3819 | |
| 3820 | using toy_generator_t = toy_generator<std::uint64_t>; |
| 3821 |
nothing calls this directly
no outgoing calls
no test coverage detected