static I impl()

in include/range/v3/algorithm/partition.hpp [52:73]


            static I impl(I begin, S end, C pred_, P proj_, concepts::ForwardIterator*)
            {
                auto && pred = as_function(pred_);
                auto && proj = as_function(proj_);
                while(true)
                {
                    if(begin == end)
                        return begin;
                    if(!pred(proj(*begin)))
                        break;
                    ++begin;
                }
                for(I p = begin; ++p != end;)
                {
                    if(pred(proj(*p)))
                    {
                        ranges::iter_swap(begin, p);
                        ++begin;
                    }
                }
                return begin;
            }