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

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

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

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

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

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

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

namespace ranges
{
    inline namespace v3
    {
        struct minmax_element_fn;
        
        inline namespace 
        {
            constexpr auto& minmax_element = static_const<with_braced_init_args<minmax_element_fn>>::value;
        }
    }
}

Class ranges::v3::minmax_element_fn

struct minmax_element_fn
{
    template <typename I, typename S, typename C = ordered_less, typename P = ident, int _concept_requires_40 = 42, typename std::enable_if<(_concept_requires_40==43)||(ForwardIterator<I>()&&Sentinel<S, I>()&&IndirectCallableRelation<C, projected<I, P>>()), int>::type=0>
    tagged_pair<tag::min(I), tag::max(I)> operator()(I, I, 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_88 = 42, typename std::enable_if<(_concept_requires_88==43)||(ForwardRange<Rng>()&&IndirectCallableRelation<C, projected<I, P>>()), int>::type=0>
    meta::if_<std::is_lvalue_reference<Rng>, tagged_pair<tag::min(I), tag::max(I)>, dangling<tagged_pair<tag::min(I), tag::max(I)>>> operator()(I, I, I, I, Rng&& rng, C pred = C{}, P proj = P{}) const;
};

@{


Variable ranges::v3::minmax_element

constexpr auto& minmax_element = static_const<with_braced_init_args<minmax_element_fn>>::value;

minmax_element_fn