13#include <rpp/observables/details/member_overload.hpp>
23template<
typename Fn,
typename Result,
typename Type>
26template<constra
int::decayed_type Type, constra
int::decayed_type Result, scan_accumulator<Result, Type> AccumulatorFn>
29template<constra
int::decayed_type Type,
typename SpecificObservable>
68 template<
typename Result, scan_accumulator<Result, Type> AccumulatorFn>
69 auto scan(Result&& initial_value, AccumulatorFn&& accumulator)
const &
requires is_header_included<scan_tag, Result, AccumulatorFn>
71 return static_cast<const SpecificObservable*
>(
this)->
template lift<std::decay_t<Result>>(
scan_impl<Type, std::decay_t<Result>, std::decay_t<AccumulatorFn>>{std::forward<Result>(initial_value), std::forward<AccumulatorFn>(accumulator)});
74 template<
typename Result, scan_accumulator<Result, Type> AccumulatorFn>
75 auto scan(Result&& initial_value, AccumulatorFn&& accumulator) &&
requires is_header_included<scan_tag, Result, AccumulatorFn>
77 return std::move(*
static_cast<SpecificObservable*
>(
this)).template lift<std::decay_t<Result>>(
scan_impl<Type, std::decay_t<Result>, std::decay_t<AccumulatorFn>>{std::forward<Result>(initial_value), std::forward<AccumulatorFn>(accumulator)});
Definition: reduce.hpp:24
Definition: member_overload.hpp:19