13#include <rpp/memory_model.hpp>
14#include <rpp/observables/constraints.hpp>
15#include <rpp/observables/details/member_overload.hpp>
24template<constra
int::decayed_type Type, constra
int::observable_of_type<Type> TObservable, constra
int::observable_of_type<Type> ...TObservables>
25auto start_with_impl(TObservable&& observable, TObservables&&... observables_to_start_with);
27template<rpp::memory_model memory_model, constra
int::decayed_type Type, constra
int::decayed_same_as<Type> ...TTypes, constra
int::observable_of_type<Type> TObservable>
28auto start_with_impl(TObservable&& observable, TTypes&& ...vals_to_start_with);
30template<constra
int::decayed_type Type,
typename SpecificObservable>
56 template<rpp::memory_model memory_model = memory_model::use_stack, constra
int::decayed_same_as<Type> ...TTypes>
57 auto start_with(TTypes&&...vals_to_start_with)
const &
requires is_header_included<start_with_tag, TTypes...>
59 return start_with_impl<memory_model, Type>(*
static_cast<const SpecificObservable*
>(
this), std::forward<TTypes>(vals_to_start_with)...);
62 template<rpp::memory_model memory_model = memory_model::use_stack, constra
int::decayed_same_as<Type> ...TTypes>
63 auto start_with(TTypes&&...vals_to_start_with) &&
requires (is_header_included<start_with_tag, TTypes...>&& constraint::variadic_is_same_type<Type, TTypes...>)
65 return start_with_impl<memory_model, Type>(std::move(*
static_cast<SpecificObservable*
>(
this)), std::forward<TTypes>(vals_to_start_with)...);
90 template<constra
int::observable_of_type<Type> ...TObservables>
91 auto start_with(TObservables&&...observables_to_start_with)
const&
requires is_header_included<start_with_tag, TObservables...>
93 return start_with_impl<Type>(*
static_cast<const SpecificObservable*
>(
this), std::forward<TObservables>(observables_to_start_with)...);
96 template<constra
int::observable_of_type<Type> ...TObservables>
97 auto start_with(TObservables&&...observables_to_start_with) &&
requires is_header_included<start_with_tag, TObservables...>
99 return start_with_impl<Type>(std::move(*
static_cast<SpecificObservable*
>(
this)), std::forward<TObservables>(observables_to_start_with)...);
Definition: member_overload.hpp:19