diff --git a/include/flux/op/cartesian_base.hpp b/include/flux/op/cartesian_base.hpp index 01597d6c..83c4b73f 100644 --- a/include/flux/op/cartesian_base.hpp +++ b/include/flux/op/cartesian_base.hpp @@ -383,14 +383,7 @@ struct cartesian_traits_base_impl : default_sequence_traits { static constexpr auto for_each_while(Self& self, Function&& func) -> cursor_t requires (ReadKind == read_kind::map) { - auto cur = first(self); - while (!is_last(self, cur)) { - if (!std::invoke(func, read_at(self, cur))) { - break; - } - inc(self, cur); - } - return cur; + return default_sequence_traits::for_each_while(self, FLUX_FWD(func)); } };