|
2567 | 2567 |
|
2568 | 2568 | \rSec3[exec.adapt.general]{General}
|
2569 | 2569 |
|
| 2570 | +\pnum |
| 2571 | +Subclause \ref{exec.adapt} specifies a set of sender adaptors. |
| 2572 | + |
| 2573 | +\pnum |
| 2574 | +The bitwise inclusive \logop{or} operator is overloaded |
| 2575 | +for the purpose of creating sender chains. |
| 2576 | +The adaptors also support function call syntax with equivalent semantics. |
2570 | 2577 |
|
| 2578 | +\pnum |
| 2579 | +Unless otherwise specified: |
| 2580 | +\begin{itemize} |
| 2581 | +\item |
| 2582 | +A sender adaptor is prohibited from causing observable effects, |
| 2583 | +apart from moving and copying its arguments, |
| 2584 | +before the returned sender is connected with a receiver using \tcode{connect}, |
| 2585 | +and \tcode{start} is called on the resulting operation state. |
| 2586 | +\item |
| 2587 | +A parent sender\iref{exec.async.ops} with a single child sender \tcode{sndr} has |
| 2588 | +an associated attribute object equal to |
| 2589 | +\tcode{\exposid{FWD-ENV}(get_env(sndr))}\iref{exec.fwd.env}. |
| 2590 | +\item |
| 2591 | +A parent sender with more than one child sender has |
| 2592 | +an associated attributes object equal to \tcode{empty_env\{\}}. |
| 2593 | +\item |
| 2594 | +When a parent sender is connected to a receiver \tcode{rcvr}, |
| 2595 | +any receiver used to connect a child sender has |
| 2596 | +an associated environment equal to \tcode{\exposid{FWD-ENV}(get_env(rcvr))}. |
| 2597 | +\item |
| 2598 | +These requirements apply to any function |
| 2599 | +that is selected by the implementation of the sender adaptor. |
| 2600 | +\end{itemize} |
| 2601 | + |
| 2602 | +\pnum |
| 2603 | +If a sender returned from a sender adaptor specified in \ref{exec.adapt} |
| 2604 | +is specified to include \tcode{set_error_t(Err)} |
| 2605 | +among its set of completion signatures |
| 2606 | +where \tcode{decay_t<Err>} denotes the type \tcode{exception_ptr}, |
| 2607 | +but the implementation does not potentially evaluate |
| 2608 | +an error completion operation with an \tcode{exception_ptr} argument, |
| 2609 | +the implementation is allowed to omit |
| 2610 | +the \tcode{exception_ptr} error completion signature from the set. |
2571 | 2611 |
|
2572 | 2612 | \rSec1[exec.util]{Sender/receiver utilities}
|
2573 | 2613 |
|
|
0 commit comments