Iros
 
Loading...
Searching...
No Matches
empty_sequence.h
Go to the documentation of this file.
1#pragma once
2
13#include "di/meta/core.h"
14#include "di/util/immovable.h"
15#include "di/util/move.h"
16
17namespace di::execution {
19 template<typename Rec>
22 public:
23 constexpr explicit Type(Rec receiver) : m_receiver(di::move(receiver)) {}
24
25 friend void tag_invoke(types::Tag<start>, Type& self) { set_value(util::move(self.m_receiver)); }
26
27 private:
28 [[no_unique_address]] Rec m_receiver;
29 };
30 };
31
32 template<concepts::Receiver Rec>
34
35 struct Sender {
37
39
40 template<concepts::SubscriberOf<CompletionSignatures> Rec>
41 friend auto tag_invoke(types::Tag<subscribe>, Sender, Rec receiver) {
42 return OperationState<Rec> { util::move(receiver) };
43 };
44
48 };
49
50 struct Function {
51 auto operator()() const { return Sender {}; }
52 };
53}
54
57}
Definition empty_sequence.h:18
meta::Type< OperationStateT< Rec > > OperationState
Definition empty_sequence.h:33
Definition bulk.h:30
constexpr auto empty_sequence
A sequence sender that completes immediately without ever sending a value.
Definition empty_sequence.h:56
constexpr auto make_env
Create an environment with overrides for queries.
Definition make_env.h:147
constexpr auto get_sequence_cardinality
A query that returns the cardinality of a sequence.
Definition get_sequence_cardinality.h:45
constexpr auto with
Specify an override for an environment query.
Definition make_env.h:112
constexpr auto set_value
Definition set_value.h:14
T::Type Type
Definition core.h:26
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
constexpr auto empty_env
Definition empty_env.h:6
Defines the sequence sender concepts and related CPOs.
Definition sequence_sender.h:86
Definition empty_sequence.h:50
auto operator()() const
Definition empty_sequence.h:51
friend void tag_invoke(types::Tag< start >, Type &self)
Definition empty_sequence.h:25
constexpr Type(Rec receiver)
Definition empty_sequence.h:23
Definition empty_sequence.h:35
friend auto tag_invoke(Tag< get_env >, Sender)
Definition empty_sequence.h:45
types::CompletionSignatures<> CompletionSignatures
Definition empty_sequence.h:38
friend auto tag_invoke(types::Tag< subscribe >, Sender, Rec receiver)
Definition empty_sequence.h:41
SequenceTag is_sender
Definition empty_sequence.h:36
Definition completion_signuatures.h:7
Definition immovable.h:4