13#include <rpp/schedulers/constraints.hpp>
14#include <rpp/observables/details/member_overload.hpp>
23template<constra
int::decayed_type Type, schedulers::constra
int::scheduler TScheduler>
26template<constra
int::decayed_type Type,
typename SpecificObservable>
63 template<schedulers::constra
int::scheduler TScheduler>
64 auto delay(
auto&& delay_duration,
65 TScheduler&& scheduler)
const&
requires is_header_included<delay_tag, TScheduler>
67 return cast_this()->template lift<Type>(
68 delay_impl<Type, std::decay_t<TScheduler>>{std::forward<TScheduler>(scheduler),
69 std::chrono::duration_cast<rpp::schedulers::duration>(delay_duration)});
72 template<schedulers::constra
int::scheduler TScheduler>
73 auto delay(
auto&& delay_duration,
74 TScheduler&& scheduler) &&
requires is_header_included<delay_tag, TScheduler>
76 return move_this().template lift<Type>(
77 delay_impl<Type, std::decay_t<TScheduler>>{std::forward<TScheduler>(scheduler),
78 std::chrono::duration_cast<rpp::schedulers::duration>(delay_duration)});
82 const SpecificObservable* cast_this()
const
84 return static_cast<const SpecificObservable*
>(
this);
87 SpecificObservable&& move_this()
89 return std::move(*
static_cast<SpecificObservable*
>(
this));
Definition: delay.hpp:153
Definition: member_overload.hpp:19