13#include <rpp/observables/constraints.hpp>
14#include <rpp/observables/details/member_overload.hpp>
15#include <rpp/utils/function_traits.hpp>
24template<
typename Fn,
typename Type>
27template<constra
int::decayed_type Type, flat_map_callable<Type> Callable>
28auto flat_map_impl(
auto&& observable, Callable&& callable);
30template<constra
int::decayed_type Type,
typename SpecificObservable>
56 template<flat_map_callable<Type> Callable>
57 auto flat_map(Callable&& callable)
const &
requires is_header_included<flat_map_tag, Callable>
59 return flat_map_impl<Type>(*
static_cast<const SpecificObservable*
>(
this), std::forward<Callable>(callable));
62 template<flat_map_callable<Type> Callable>
63 auto flat_map(Callable&& callable) &&
requires is_header_included<flat_map_tag, Callable>
65 return flat_map_impl<Type>(std::move(*
static_cast<SpecificObservable*
>(
this)), std::forward<Callable>(callable));
Definition: constraints.hpp:19
Definition: flat_map.hpp:25
Definition: member_overload.hpp:19