33 template<
typename Op,
typename Rec>
50 template<
typename Op,
typename Rec>
53 template<
typename Send,
typename Rec>
62 explicit Type(Send sender, Rec reciever)
63 : m_sender(
di::move(sender))
64 , m_receiver(
di::move(reciever))
69 if (m_stop_token.stop_requested()) {
88 [[no_unique_address]] Send m_sender;
89 [[no_unique_address]] Rec m_receiver;
90 [[no_unique_address]]
StopToken m_stop_token;
95 template<
typename Send,
typename Rec>
98 template<
typename Send,
typename Env>
104 template<
typename Send>
111 template<concepts::Like<Type> Self,
typename Env>
116 template<concepts::Like<Type> Self,
typename Rec>
128 template<
typename Send>
132 template<concepts::Sender Send>
134 auto operator()(Send&& sender)
const {
137 "Customizations of repeat() must return a sequence sender.");
Definition defer_construct.h:8
Definition optional_forward_declaration.h:5
#define DI_IMMOVABLE_NO_UNIQUE_ADDRESS
Definition compiler.h:15
Definition operations.h:34
Definition sequence_sender.h:102
Definition sequence_sender.h:128
Definition tag_invoke.h:33
Definition unstoppable_token.h:7
meta::Type< SequenceT< meta::RemoveCVRef< Send > > > Sequence
Definition repeat.h:129
meta::Type< OperationStateT< Send, Rec > > OperationState
Definition repeat.h:96
meta::MakeCompletionSignatures< Send, MakeEnv< Env >, meta::Conditional< concepts::UnstoppableToken< meta::StopTokenOf< Env > >, CompletionSignatures< SetStopped()>, CompletionSignatures<> > > Sigs
Definition repeat.h:99
meta::Type< ReceiverT< Op, Rec > > Receiver
Definition repeat.h:51
constexpr auto set_next
Set the next sender of a sequence.
Definition sequence_sender.h:77
constexpr auto repeat
Transform a copyable sender into an infinite sequence sender.
Definition repeat.h:150
constexpr auto start
Definition start.h:20
constexpr auto make_env
Create an environment with overrides for queries.
Definition make_env.h:147
constexpr auto set_stopped
Definition set_stopped.h:14
constexpr auto with
Specify an override for an environment query.
Definition make_env.h:112
constexpr auto is_always_lockstep_sequence
A query that returns whether or not a sequence is always lockstep.
Definition is_always_lockstep_sequence.h:53
constexpr auto get_stop_token
Definition get_stop_token.h:25
decltype(make_env(util::declval< BaseEnv >(), util::declval< Withs >()...)) MakeEnv
Represent an environment with overrides for queries.
Definition make_env.h:189
constexpr auto get_env
Definition get_env.h:27
constexpr auto connect
Definition connect.h:42
constexpr auto set_value
Definition set_value.h:14
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Definition zstring_parser.h:9
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
Defines the sequence sender concepts and related CPOs.
Definition sequence_sender.h:86
Definition set_stopped.h:6
meta::StopTokenOf< meta::EnvOf< Rec > > StopToken
Definition repeat.h:60
void did_set_stopped()
Definition repeat.h:81
meta::ConnectResult< NextSend, Re > Op
Definition repeat.h:59
Receiver< Type, Rec > Re
Definition repeat.h:58
Type(Send sender, Rec reciever)
Definition repeat.h:62
friend void tag_invoke(Tag< start >, Type &self)
Definition repeat.h:86
meta::NextSenderOf< Rec, Send > NextSend
Definition repeat.h:57
void did_set_value()
Definition repeat.h:67
auto receiver() const &
Definition repeat.h:83
Op * op
Definition repeat.h:38
friend void tag_invoke(Tag< set_stopped >, Type &&self)
Definition repeat.h:42
friend auto tag_invoke(Tag< get_env >, Type const &self) -> MakeEnv< meta::EnvOf< Rec > >
Definition repeat.h:44
void is_receiver
Definition repeat.h:36
friend void tag_invoke(Tag< set_value >, Type &&self)
Definition repeat.h:40
friend auto tag_invoke(Tag< subscribe >, Self &&self, Rec receiver)
Definition repeat.h:118
SequenceTag is_sender
Definition repeat.h:107
friend auto tag_invoke(Tag< get_completion_signatures >, Self &&, Env &&) -> Sigs< Send, Env >
Definition repeat.h:112
Send sender
Definition repeat.h:109
friend auto tag_invoke(Tag< get_env >, Type const &self)
Definition repeat.h:122
Definition completion_signuatures.h:7