32 template<
typename Shape,
typename Function,
typename Rec>
41 template<
typename Shape,
typename Function,
typename Rec>
44 template<
typename Shape,
typename Function,
typename Rec>
54 auto base() const& -> Rec const& {
return m_data->receiver; }
55 auto base() && -> Rec&& {
return util::move(m_data->receiver); }
58 template<
typename... Args>
61 for (
auto i = Shape(); i != m_data->shape; ++i) {
79 template<
typename Shape,
typename Function,
typename Rec>
82 template<
typename Send,
typename Shape,
typename Function,
typename Rec>
91 , m_operation(
connect(
util::forward<Send>(sender),
Rc(
util::addressof(m_data)))) {}
101 template<
typename Send,
typename Shape,
typename Function,
typename Rec>
104 template<
typename Function,
typename Shape>
106 template<
typename... Args>
111 template<
typename... Errors>
115 template<
typename Sender,
typename Env,
typename Shape,
typename Function>
122 template<
typename Sender,
typename Env,
typename Shape,
typename Function>
125 template<
typename Send,
typename Shape,
typename Function>
134 template<concepts::RemoveCVRefSameAs<Type> Self,
typename Env>
141 template<concepts::RemoveCVRefSameAs<Type> Self,
typename Rec>
147 util::move(receiver));
154 template<
typename Send,
typename Shape,
typename Function>
158 template<concepts::Sender Send, concepts::Integral Shape, concepts::MovableValue Fun>
160 if constexpr (
requires {
162 util::forward<Send>(sender), shape, util::forward<Fun>(
function));
165 util::forward<Send>(sender), shape, util::forward<Fun>(
function));
166 }
else if constexpr (
requires {
167 tag_invoke(*
this, util::forward<Send>(sender), shape,
170 return tag_invoke(*
this, util::forward<Send>(sender), shape, util::forward<Fun>(
function));
#define DI_IMMOVABLE_NO_UNIQUE_ADDRESS
Definition compiler.h:15
Definition receiver_of.h:25
meta::Type< ReceiverT< meta::Decay< Shape >, meta::Decay< Function >, meta::Decay< Rec > > > Receiver
Definition bulk.h:80
meta::Type< SenderT< meta::RemoveCVRef< Send >, meta::Decay< Shape >, meta::Decay< Function > > > Sender
Definition bulk.h:155
meta::Type< DataT< meta::Decay< Shape >, meta::Decay< Function >, Rec > > Data
Definition bulk.h:42
meta::Type< OperationStateT< Send, Shape, Function, Rec > > OperationState
Definition bulk.h:102
meta::Apply< MakeErrorSigs, meta::Filter< meta::ValueTypesOf< Sender, MakeEnv< Env >, GetInvokeResult< Function, Shape >::template Invoke, meta::List >, meta::Not< meta::SameAs< void > > > > ErrorCompletions
Definition bulk.h:116
meta::MakeCompletionSignatures< Sender, MakeEnv< Env >, ErrorCompletions< Sender, Env, Shape, Function > > Sigs
Definition bulk.h:123
constexpr auto set_error
Definition set_error.h:14
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 bulk
Bulk apply a function to a range of values.
Definition bulk.h:198
meta::Type< receiver_interface_ns::ReceiverAdaptor< Self, Base > > ReceiverAdaptor
Definition receiver_adaptor.h:236
constexpr auto get_completion_scheduler
Definition get_completion_scheduler.h:19
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
constexpr auto invoke
Definition invoke.h:100
constexpr auto curry_back
Definition curry_back.h:141
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
constexpr auto forward_like(U &&value) -> decltype(auto)
Definition forward_like.h:8
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
constexpr auto data
Definition data.h:51
Shape shape
Definition bulk.h:35
Rec receiver
Definition bulk.h:37
Function function
Definition bulk.h:36
constexpr auto operator()(Send &&sender, Shape shape, Fun &&function) const
Definition bulk.h:159
meta::InvokeResult< Function &, Shape, Args &... > Invoke
Definition bulk.h:107
CompletionSignatures< SetError(meta::ExpectedError< Errors >)... > Invoke
Definition bulk.h:112
Type(Send &&sender, Shape shape, Function &&function, Rec receiver)
Definition bulk.h:89
friend void tag_invoke(Tag< start >, Type &self)
Definition bulk.h:94
meta::ConnectResult< Send, Rc > Op
Definition bulk.h:87
Receiver< Shape, Function, Rec > Rc
Definition bulk.h:86
auto base() const &-> Rec const &
Definition bulk.h:54
auto base() &&-> Rec &&
Definition bulk.h:55
Type(Data< Shape, Function, Rec > *data)
Definition bulk.h:52
Function function
Definition bulk.h:132
friend auto tag_invoke(Tag< get_completion_signatures >, Self &&, Env &&) -> Sigs< meta::Like< Self, Send >, Env, Shape, Function >
Definition bulk.h:136
friend auto tag_invoke(Tag< connect >, Self &&self, Rec receiver)
Definition bulk.h:144
Send sender
Definition bulk.h:130
Shape shape
Definition bulk.h:131
friend auto tag_invoke(Tag< get_env >, Type const &self)
Definition bulk.h:150
void is_sender
Definition bulk.h:128
Definition completion_signuatures.h:7