From Jason Turner

[exec.snd.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmph_28th5h/{from.md → to.md} +31 -0
tmp/tmph_28th5h/{from.md → to.md} RENAMED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### General <a id="exec.snd.general">[[exec.snd.general]]</a>
2
+
3
+ Subclauses [[exec.factories]] and [[exec.adapt]] define customizable
4
+ algorithms that return senders. Each algorithm has a default
5
+ implementation. Let `sndr` be the result of an invocation of such an
6
+ algorithm or an object equal to the result [[concepts.equality]], and
7
+ let `Sndr` be `decltype((sndr))`. Let `rcvr` be a receiver of type
8
+ `Rcvr` with associated environment `env` of type `Env` such that
9
+ `sender_to<Sndr, Rcvr>` is `true`. For the default implementation of the
10
+ algorithm that produced `sndr`, connecting `sndr` to `rcvr` and starting
11
+ the resulting operation state [[exec.async.ops]] necessarily results in
12
+ the potential evaluation [[basic.def.odr]] of a set of completion
13
+ operations whose first argument is a subexpression equal to `rcvr`. Let
14
+ `Sigs` be a pack of completion signatures corresponding to this set of
15
+ completion operations, and let `CS` be the type of the expression
16
+ `get_completion_signatures<Sndr, Env>()`. Then `CS` is a specialization
17
+ of the class template `completion_signatures` [[exec.cmplsig]], the set
18
+ of whose template arguments is `Sigs`. If none of the types in `Sigs`
19
+ are dependent on the type `Env`, then the expression
20
+ `get_completion_signatures<Sndr>()` is well-formed and its type is `CS`.
21
+ If a user-provided implementation of the algorithm that produced `sndr`
22
+ is selected instead of the default:
23
+
24
+ - Any completion signature that is in the set of types denoted by
25
+ `completion_signatures_of_t<Sndr, Env>` and that is not part of `Sigs`
26
+ shall correspond to error or stopped completion operations, unless
27
+ otherwise specified.
28
+ - If none of the types in `Sigs` are dependent on the type `Env`, then
29
+ `completion_signatures_of_t<Sndr>` and
30
+ `completion_signatures_of_t<Sndr, Env>` shall denote the same type.
31
+