1
0
forked from boostorg/mp11

Add mp_partial_sum

This commit is contained in:
Peter Dimov
2020-03-19 17:25:03 +02:00
parent a7a2c97383
commit 6bc2682936
3 changed files with 103 additions and 0 deletions

View File

@@ -1170,6 +1170,20 @@ template<template<class...> class L, class T1, class... T> struct mp_power_set_i
} // namespace detail
// mp_partial_sum<L, V, F>
namespace detail
{
template<template<class...> class F> struct mp_partial_sum_impl_f
{
template<class V, class T, class N = F<mp_first<V>, T>> using fn = mp_list<N, mp_push_back<mp_second<V>, N>>;
};
} // namespace detail
template<class L, class V, template<class...> class F> using mp_partial_sum = mp_second<mp_fold_q<L, mp_list<V, mp_clear<L>>, detail::mp_partial_sum_impl_f<F>> >;
template<class L, class V, class Q> using mp_partial_sum_q = mp_partial_sum<L, V, Q::template fn>;
} // namespace mp11
} // namespace boost