Header file range/v3/algorithm/sort.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/move_backward.hpp>

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

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

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

namespace ranges
{
    inline namespace v3
    {
        namespace detail
        {
            template <typename I, typename C, typename P>
            I unguarded_partition(I begin, I end, C& pred, P& proj);
            
            template <typename I, typename C, typename P>
            void unguarded_linear_insert(I end, iterator_value_t<I> val, C& pred, P& proj);
            
            template <typename I, typename C, typename P>
            void linear_insert(I begin, I end, C& pred, P& proj);
            
            template <typename I, typename C, typename P>
            void insertion_sort(I begin, I end, C& pred, P& proj);
            
            template <typename I, typename C, typename P>
            void unguarded_insertion_sort(I begin, I end, C& pred, P& proj);
        }
        
        struct sort_fn
        {
            template <typename I, typename S, typename C = ordered_less, typename P = ident, int _concept_requires_180 = 42, typename std::enable_if<(_concept_requires_180==43)||(Sortable<I, C, P>()&&RandomAccessIterator<I>()&&Sentinel<S, I>()), int>::type=0>
            I operator()(I begin, S end_, C pred_ = C{}, P proj_ = P{}) const;
            
            template <typename Rng, typename C = ordered_less, typename P = ident, typename I = range_iterator_t<Rng>, int _concept_requires_196 = 42, typename std::enable_if<(_concept_requires_196==43)||(Sortable<I, C, P>()&&RandomAccessRange<Rng>()), int>::type=0>
            range_safe_iterator_t<Rng> operator()(Rng&& rng, C pred = C{}, P proj = P{}) const;
        };
        
        inline namespace 
        {
            constexpr auto& sort = static_const<with_braced_init_args<sort_fn>>::value;
        }
    }
}

Variable ranges::v3::sort

constexpr auto& sort = static_const<with_braced_init_args<sort_fn>>::value;

sort_fn