Iros
 
Loading...
Searching...
No Matches
sum.h
Go to the documentation of this file.
1#pragma once
2
5#include "di/function/plus.h"
7
8namespace di::container {
9namespace detail {
11 template<concepts::InputIterator Iter, concepts::SentinelFor<Iter> Sent,
12 concepts::DefaultConstructible T = meta::IteratorValue<Iter>>
14 constexpr auto operator()(Iter first, Sent last) const {
15 return container::fold_left(util::move(first), last, T(), function::plus);
16 }
17
18 template<concepts::InputContainer Con, concepts::DefaultConstructible T = meta::ContainerValue<Con>>
20 constexpr auto operator()(Con&& container) const {
22 }
23 };
24}
25
26constexpr inline auto sum = detail::SumFunction {};
27}
28
29namespace di {
30using container::sum;
31}
Definition indirectly_binary_left_foldable.h:18
Definition sequence.h:13
Definition sequence.h:12
constexpr auto fold_left
Definition fold_left.h:24
constexpr auto end
Definition end.h:47
constexpr auto sum
Definition sum.h:26
constexpr auto begin
Definition begin.h:44
constexpr auto plus
Definition plus.h:15
Definition zstring_parser.h:9