13#include <rpp/observables/constraints.hpp>
14#include <rpp/observables/details/member_overload.hpp>
15#include <rpp/subjects/constraints.hpp>
24template<constra
int::decayed_type Type, constra
int::observable_of_type<Type> TObs, subjects::constra
int::subject_of_type<Type> TSubject>
25auto multicast_impl(TObs&& observable, TSubject&& subject);
27template<constra
int::decayed_type Type,
typename SpecificObservable>
44 template<subjects::constra
int::subject_of_type<Type> TSubject>
45 auto multicast(TSubject&& subject)
const&
requires is_header_included<multicast_tag, TSubject>
47 return multicast_impl<Type>(*
static_cast<const SpecificObservable*
>(
this), std::forward<TSubject>(subject));
50 template<subjects::constra
int::subject_of_type<Type> TSubject>
51 auto multicast(TSubject&& subject) &&
requires is_header_included<multicast_tag, TSubject>
53 return multicast_impl<Type>(std::move(*
static_cast<SpecificObservable*
>(
this)), std::forward<TSubject>(subject));
auto multicast(TSubject &&subject) const &
Converts ordinary observable to rpp::connectable_observable with help of provided subject.
Definition: multicast.hpp:45
Definition: member_overload.hpp:19