5 #ifndef VCCC_ALGORITHM_RANGES_SORT_HEAP_HPP_
6 #define VCCC_ALGORITHM_RANGES_SORT_HEAP_HPP_
32 struct sort_heap_niebloid {
33 template<
typename I,
typename S,
typename Comp = ranges::less,
typename Proj = identity, std::enable_if_t<conjunction<
34 random_access_iterator<I>,
36 sortable<I, Comp, Proj>
38 constexpr I operator()(I
first, S last, Comp comp = {}, Proj proj = {})
const {
40 for (; !(
first == last); --last)
45 template<
typename R,
typename Comp = ranges::less,
typename Proj = identity, std::enable_if_t<conjunction<
46 random_access_range<R>,
47 sortable<iterator_t<R>, Comp, Proj>
49 constexpr borrowed_iterator_t<R> operator()(R&& r, Comp comp = {}, Proj proj = {})
const {
constexpr VCCC_INLINE_OR_STATIC detail::pop_heap_niebloid pop_heap
Definition: pop_heap.hpp:64
constexpr VCCC_INLINE_OR_STATIC detail::sort_heap_niebloid sort_heap
Definition: sort_heap.hpp:59
constexpr VCCC_INLINE_OR_STATIC detail::next_niebloid next
Definition: next.hpp:65
constexpr VCCC_INLINE_OR_STATIC detail::begin_niebloid begin
returns an iterator to the beginning of a range
Definition: begin.hpp:116
constexpr VCCC_INLINE_OR_STATIC detail::end_niebloid end
returns a sentinel indicating the end of a range
Definition: end.hpp:120
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 0 > first
Definition: key_value.hpp:34
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35