Files
cppdraft_translate/cppdraft/exec/domain/default.md
2025-10-25 03:02:53 +03:00

4.7 KiB
Raw Blame History

[exec.domain.default]

33 Execution control library [exec]

33.9 Senders [exec.snd]

33.9.5 execution::default_domain [exec.domain.default]

1

#

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.3Sender concepts[exec.snd.concepts]") Sndr, [queryable](exec.queryable.concept#concept:queryable "33.2.2queryable concept[exec.queryable.concept]")... Env> requires (sizeof...(Env) <= 1) constexpr [sender](exec.snd.concepts#concept:sender "33.9.3Sender concepts[exec.snd.concepts]") decltype(auto) transform_sender(Sndr&& sndr, const Env&... env) noexcept(see below);

2

#

Let e be the expressiontag_of_t().transform_sender(std::forward(sndr), env...) if that expression is well-formed; otherwise, std::forward(sndr).

3

#

Returns: e.

4

#

Remarks: The exception specification is equivalent to noexcept(e).

🔗

template<[sender](exec.snd.concepts#concept:sender "33.9.3Sender concepts[exec.snd.concepts]") Sndr, [queryable](exec.queryable.concept#concept:queryable "33.2.2queryable concept[exec.queryable.concept]") Env> constexpr [queryable](exec.queryable.concept#concept:queryable "33.2.2queryable concept[exec.queryable.concept]") decltype(auto) transform_env(Sndr&& sndr, Env&& env) noexcept;

5

#

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)).

6

#

Mandates: noexcept(e) is true.

7

#

Returns: e.

🔗

template<class Tag, [sender](exec.snd.concepts#concept:sender "33.9.3Sender concepts[exec.snd.concepts]") Sndr, class... Args> constexpr decltype(auto) apply_sender(Tag, Sndr&& sndr, Args&&... args) noexcept(see below);

8

#

Let e be the expression Tag().apply_sender(std::forward(sndr), std::forward(args)...)

9

#

Constraints: e is a well-formed expression.

10

#

Returns: e.

11

#

Remarks: The exception specification is equivalent to noexcept(e).