4.7 KiB
[exec.domain.default]
33 Execution control library [exec]
33.9 Senders [exec.snd]
33.9.5 execution::default_domain [exec.domain.default]
namespace std::execution {struct default_domain {template<sender Sndr, queryable... Env>requires (sizeof...(Env) <= 1)static constexpr sender decltype(auto) transform_sender(Sndr&& sndr, const Env&... env)noexcept(see below); template<sender Sndr, queryable Env>static constexpr queryable decltype(auto) transform_env(Sndr&& sndr, Env&& env) noexcept; template<class Tag, sender Sndr, class... Args>static constexpr decltype(auto) apply_sender(Tag, Sndr&& sndr, Args&&... args)noexcept(see below); };}
template<[sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") Sndr, [queryable](exec.queryable.concept#concept:queryable "33.2.2 queryable concept [exec.queryable.concept]")... Env> requires (sizeof...(Env) <= 1) constexpr [sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") decltype(auto) transform_sender(Sndr&& sndr, const Env&... env) noexcept(see below);
Let e be the expressiontag_of_t().transform_sender(std::forward(sndr), env...) if that expression is well-formed; otherwise, std::forward(sndr).
Returns: e.
Remarks: The exception specification is equivalent to noexcept(e).
template<[sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") Sndr, [queryable](exec.queryable.concept#concept:queryable "33.2.2 queryable concept [exec.queryable.concept]") Env> constexpr [queryable](exec.queryable.concept#concept:queryable "33.2.2 queryable concept [exec.queryable.concept]") decltype(auto) transform_env(Sndr&& sndr, Env&& env) noexcept;
Let e be the expressiontag_of_t().transform_env(std::forward(sndr), std::forward(env)) if that expression is well-formed; otherwise, FWD-ENV(std::forward(env)).
Mandates: noexcept(e) is true.
Returns: e.
template<class Tag, [sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") Sndr, class... Args> constexpr decltype(auto) apply_sender(Tag, Sndr&& sndr, Args&&... args) noexcept(see below);
Let e be the expression Tag().apply_sender(std::forward(sndr), std::forward(args)...)
Constraints: e is a well-formed expression.
Returns: e.
Remarks: The exception specification is equivalent to noexcept(e).