Header file range/v3/view/partial_sum.hpp

#include <meta/meta.hpp>

#include <range/v3/range_fwd.hpp>

#include <range/v3/size.hpp>

#include <range/v3/empty.hpp>

#include <range/v3/front.hpp>

#include <range/v3/begin_end.hpp>

#include <range/v3/range_traits.hpp>

#include <range/v3/view_adaptor.hpp>

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

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

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

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

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

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

namespace ranges
{
    inline namespace v3
    {
        template <typename Rng, typename Fun>
        struct partial_sum_view;
        
        namespace view
        {
            struct partial_sum_fn
            {
                template <typename Rng, typename Fun>
                using Concept = meta::and_<InputRange<Rng>, IndirectCallable<Fun, range_iterator_t<Rng>, range_iterator_t<Rng>>, ConvertibleTo<concepts::Callable::result_t<Fun, range_common_reference_t<Rng>, range_common_reference_t<Rng>>, range_value_t<Rng>>>;
                
                template <typename Rng, typename Fun, int _concept_requires_146 = 42, typename std::enable_if<(_concept_requires_146==43)||(Concept<Rng, Fun>()), int>::type=0>
                partial_sum_view<all_t<Rng>, Fun> operator()(Rng&& rng, Fun fun) const;
                
                template <typename Rng, typename Fun, int _concept_requires_153 = 42, typename std::enable_if<(_concept_requires_153==43)||(!Concept<Rng, Fun>()), int>::type=0>
                void operator()(Rng&&, Fun) const;
            };
            
            inline namespace 
            {
                constexpr auto& partial_sum = static_const<view<partial_sum_fn>>::value;
            }
        }
    }
}

Class template ranges::v3::partial_sum_view<Rng, Fun>

template <typename Rng, typename Fun>
struct partial_sum_view
: view_adaptor<partial_sum_view<Rng, Fun>, Rng>
{
    partial_sum_view() = default;
    
    partial_sum_view(Rng rng, Fun fun);
    
    template <int _concept_requires_115 = 42, typename std::enable_if<(_concept_requires_115==43)||(SizedRange<Rng>()), int>::type=0>
    range_size_t<Rng> size() const;
};

@{