14#include <rpp/observables/constraints.hpp>
15#include <rpp/observables/details/member_overload.hpp>
24template<
typename Fn,
typename Type>
27template<constra
int::decayed_type Type, switch_map_callable<Type> Callable>
28auto switch_map_impl(
auto&& observable, Callable&& callable);
30template<constra
int::decayed_type Type,
typename SpecificObservable>
54 template<switch_map_callable<Type> Callable>
55 auto switch_map(Callable&& callable)
const &
requires is_header_included<switch_map_tag, Callable>
57 return switch_map_impl<Type>(*
static_cast<const SpecificObservable*
>(
this), std::forward<Callable>(callable));
60 template<switch_map_callable<Type> Callable>
61 auto switch_map(Callable&& callable) &&
requires is_header_included<switch_map_tag, Callable>
63 return switch_map_impl<Type>(std::move(*
static_cast<SpecificObservable*
>(
this)), std::forward<Callable>(callable));
Definition: constraints.hpp:19
Definition: switch_map.hpp:25
Definition: member_overload.hpp:19