Header file range/v3/view/unique.hpp

#include <meta/meta.hpp>

#include <range/v3/range_fwd.hpp>

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

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

#include <range/v3/view/adjacent_filter.hpp>

#include <range/v3/view/view.hpp>

#include <range/v3/view/all.hpp>

namespace ranges
{
    inline namespace v3
    {
        namespace view
        {
            struct unique_fn
            {
                template <typename Rng>
                using Concept = meta::and_<ForwardRange<Rng>, EqualityComparable<range_value_t<Rng>>>;
                
                template <typename Rng, int _concept_requires_41 = 42, typename std::enable_if<(_concept_requires_41==43)||(Concept<Rng>()), int>::type=0>
                unique_view<all_t<Rng>> operator()(Rng&& rng) const;
                
                template <typename Rng, int _concept_requires_48 = 42, typename std::enable_if<(_concept_requires_48==43)||(!Concept<Rng>()), int>::type=0>
                void operator()(Rng&&) const;
            };
            
            inline namespace 
            {
                constexpr auto& unique = static_const<view<unique_fn>>::value;
            }
        }
    }
}