Re: [PATCH 5/8] libstdc++: Directly implement ranges::stable_partition [PR100795]

2025-06-27 Thread Jonathan Wakely
__proj)); > > > - return {std::move(__middle), std::move(__lasti)}; > > > + auto __pred_proj = __detail::__make_pred_proj(__pred, __proj); > > > + __first = ranges::find_if_not(__first, __last, __pred_proj); > > > > Does this end up going through another

Re: [PATCH 5/8] libstdc++: Directly implement ranges::stable_partition [PR100795]

2025-06-27 Thread Patrick Palka
d::move(__middle), std::move(__lasti)}; > > + auto __pred_proj = __detail::__make_pred_proj(__pred, __proj); > > + __first = ranges::find_if_not(__first, __last, __pred_proj); > > Does this end up going through another layer of > invoke(pred, invoke(proj, *i)) inside ranges::fi

Re: [PATCH 5/8] libstdc++: Directly implement ranges::stable_partition [PR100795]

2025-06-27 Thread Jonathan Wakely
On 26/06/25 22:25 -0400, Patrick Palka wrote: PR libstdc++/100795 libstdc++-v3/ChangeLog: * include/bits/ranges_algo.h (__detail::__find_if_not_n): New, based on the stl_algo.h implementation. (__detail::__stable_partition_adaptive): Likewise. (__stable_p

Re: [PATCH 5/8] libstdc++: Directly implement ranges::stable_partition [PR100795]

2025-06-27 Thread Jonathan Wakely
On 26/06/25 22:25 -0400, Patrick Palka wrote: PR libstdc++/100795 libstdc++-v3/ChangeLog: * include/bits/ranges_algo.h (__detail::__find_if_not_n): New, based on the stl_algo.h implementation. (__detail::__stable_partition_adaptive): Likewise. (__stable_p

[PATCH 5/8] libstdc++: Directly implement ranges::stable_partition [PR100795]

2025-06-26 Thread Patrick Palka
PR libstdc++/100795 libstdc++-v3/ChangeLog: * include/bits/ranges_algo.h (__detail::__find_if_not_n): New, based on the stl_algo.h implementation. (__detail::__stable_partition_adaptive): Likewise. (__stable_partition_fn::operator()): Reimplement in terms o