Header file range/v3/algorithm/partial_sort_copy.hpp

#include <meta/meta.hpp>

#include <range/v3/range_fwd.hpp>

#include <range/v3/begin_end.hpp>

#include <range/v3/range_concepts.hpp>

#include <range/v3/range_traits.hpp>

#include <range/v3/utility/iterator.hpp>

#include <range/v3/utility/iterator_concepts.hpp>

#include <range/v3/utility/iterator_traits.hpp>

#include <range/v3/utility/functional.hpp>

#include <range/v3/algorithm/heap_algorithm.hpp>

#include <range/v3/utility/static_const.hpp>

namespace ranges
{
    inline namespace v3
    {
        template <typename I, typename O, typename C = ordered_less, typename PI = ident, typename PO = ident>
        using PartialSortCopyConcept = meta::strict_and<InputIterator<I>, RandomAccessIterator<O>, IndirectlyCopyable<I, O>, IndirectCallableRelation<C, projected<I, PI>, projected<O, PO>>, Sortable<O, C, PO>>;
        
        struct partial_sort_copy_fn;
        
        inline namespace 
        {
            constexpr auto& partial_sort_copy = static_const<with_braced_init_args<partial_sort_copy_fn>>::value;
        }
    }
}

Class ranges::v3::partial_sort_copy_fn

struct partial_sort_copy_fn
{
    template <typename I, typename SI, typename O, typename SO, typename C = ordered_less, typename PI = ident, typename PO = ident, int _concept_requires_48 = 42, typename std::enable_if<(_concept_requires_48==43)||(PartialSortCopyConcept<I, O, C, PI, PO>()&&Sentinel<SI, I>()&&Sentinel<SO, O>()), int>::type=0>
    O operator()(I begin, SI end, O out_begin, SO out_end, C pred_ = C{}, PI in_proj_ = PI{}, PO out_proj_ = PO{}) const;
    
    template <typename InRng, typename OutRng, typename C = ordered_less, typename PI = ident, typename PO = ident, typename I = range_iterator_t<InRng>, typename O = range_iterator_t<OutRng>, int _concept_requires_81 = 42, typename std::enable_if<(_concept_requires_81==43)||(PartialSortCopyConcept<I, O, C, PI, PO>()&&Range<InRng>()&&Range<OutRng>()), int>::type=0>
    range_safe_iterator_t<OutRng> operator()(InRng&& in_rng, OutRng&& out_rng, C pred = C{}, PI in_proj = PI{}, PO out_proj = PO{}) const;
};

@{


Variable ranges::v3::partial_sort_copy

constexpr auto& partial_sort_copy = static_const<with_braced_init_args<partial_sort_copy_fn>>::value;

partial_sort_copy_fn