![]() |
Home | Libraries | People | FAQ | More |
A customisation point that creates a bulk sender.
constexpr unspecified bulk_execute = unspecified;
The name execution::bulk_execute denotes a customisation point
object. If is_convertible_v<N,
size_t>
is true, then the expression execution::bulk_execute(S,
F, N) for
some subexpressions S, F, and N
is expression-equivalent to:
S.bulk_execute(F, N),
if that expression is valid. If the function selected does not execute
N invocations of the
function object F on
the executor S in bulk
with forward progress guarantee boost::asio::query(S, execution::bulk_guarantee), and the result of that function does
not model sender<void>,
the program is ill-formed with no diagnostic required.
bulk_execute(S, F, N), if that expression is valid, with overload
resolution performed in a context that includes the declaration void bulk_execute(); and that does not include a declaration
of execution::bulk_execute. If the function selected
by overload resolution does not execute N
invocations of the function object F
on the executor S in
bulk with forward progress guarantee boost::asio::query(E, execution::bulk_guarantee), and the result of that function does
not model sender<void>,
the program is ill-formed with no diagnostic required.
F
and executor_index_t<remove_cvref_t<S>> model invocable
and if boost::asio::query(S, execution::bulk_guarantee)
equals execution::bulk_guarantee.unsequenced, then
DECAY_COPY(std::forward<decltype(F)>(F)) on the calling thread to create a function
object cf. [Note: Additional
copies of cf may subsequently
be created. --end note.]
i in
N, cf(i) (or copy of cf))
will be invoked at most once by an execution agent that is unique for
each value of i.
cf.
cf.
execution::bulk_execute(S, F, N) is ill-formed.
Header: boost/asio/execution/bulk_execute.hpp
Convenience header: boost/asio/execution.hpp