|
510 | 510 | concept @\libconcept{receiver}@ = @\seebelow@; |
511 | 511 |
|
512 | 512 | template<class Rcvr, class Completions> |
513 | | - concept @\libconcept{receiver_of}@ = @\seebelow@; |
| 513 | + concept @\exposconceptnc{receiver-of}@ = @\seebelownc@; // \expos |
514 | 514 |
|
515 | 515 | template<class Rcvr, class ChildOp> |
516 | 516 | concept @\libconcept{inlinable_receiver}@ = @\seebelow@; |
|
548 | 548 | concept @\libconcept{dependent_sender}@ = @\seebelow@; |
549 | 549 |
|
550 | 550 | template<class Sndr, class Rcvr> |
551 | | - concept @\libconcept{sender_to}@ = @\seebelow@; |
| 551 | + concept @\exposconceptnc{sender-to}@ = @\seebelownc@; // \expos |
552 | 552 |
|
553 | 553 | template<class... Ts> |
554 | 554 | struct @\exposidnc{type-list}@; // \expos |
|
578 | 578 | using @\exposidnc{single-sender-value-type}@ = @\seebelownc@; // \expos |
579 | 579 |
|
580 | 580 | template<class Sndr, class... Env> |
581 | | - concept @\exposconcept{single-sender}@ = @\seebelow@; // \expos |
| 581 | + concept @\exposconceptnc{single-sender}@ = @\seebelownc@; // \expos |
582 | 582 |
|
583 | 583 | template<@\libconcept{sender}@ Sndr> |
584 | 584 | using tag_of_t = @\seebelow@; |
|
1012 | 1012 |
|
1013 | 1013 | \pnum |
1014 | 1014 | Given subexpressions \tcode{sndr} and \tcode{rcvr} |
1015 | | -such that \tcode{sender_to<decltype((sndr)), decltype((rcvr))>} is \tcode{true} |
| 1015 | +such that \tcode{\exposid{sender-to}<decltype((sndr)), decltype((rcvr))>} is \tcode{true} |
1016 | 1016 | and the expression \tcode{get_start_scheduler(get_env(rcvr))} is well-formed, |
1017 | 1017 | an operation state that is the result of calling \tcode{connect(sndr, rcvr)} |
1018 | 1018 | shall, if it is started, be started on an execution agent |
|
1357 | 1357 | A receiver represents the continuation of an asynchronous operation. |
1358 | 1358 | The \libconcept{receiver} concept defines |
1359 | 1359 | the requirements for a receiver type\iref{exec.async.ops}. |
1360 | | -The \libconcept{receiver_of} concept defines |
| 1360 | +The \exposconcept{receiver-of} concept defines |
1361 | 1361 | the requirements for a receiver type that is usable as |
1362 | 1362 | the first argument of a set of completion operations |
1363 | 1363 | corresponding to a set of completion signatures. |
|
1391 | 1391 | }; |
1392 | 1392 |
|
1393 | 1393 | template<class Rcvr, class Completions> |
1394 | | - concept @\deflibconcept{receiver_of}@ = |
| 1394 | + concept @\defexposconcept{receiver-of}@ = |
1395 | 1395 | @\libconcept{receiver}@<Rcvr> && @\exposconcept{has-completions}@<Rcvr, Completions>; |
1396 | 1396 | } |
1397 | 1397 | \end{codeblock} |
|
1619 | 1619 | let \tcode{Sndr} be \tcode{decltype((sndr))}. |
1620 | 1620 | Let \tcode{rcvr} be a receiver of type \tcode{Rcvr} |
1621 | 1621 | with associated environment \tcode{env} of type \tcode{Env} |
1622 | | -such that \tcode{\libconcept{sender_to}<Sndr, Rcvr>} is \tcode{true}. |
| 1622 | +such that \tcode{\exposconcept{sender-to}<Sndr, Rcvr>} is \tcode{true}. |
1623 | 1623 | For the default implementation of the algorithm that produced \tcode{sndr}, |
1624 | 1624 | connecting \tcode{sndr} to \tcode{rcvr} and |
1625 | 1625 | starting the resulting operation state\iref{exec.async.ops} |
|
2477 | 2477 | The \libconcept{sender_in} concept defines |
2478 | 2478 | the requirements for a sender type |
2479 | 2479 | that can create asynchronous operations given an associated environment type. |
2480 | | -The \libconcept{sender_to} concept defines |
| 2480 | +The \exposconcept{sender-to} concept defines |
2481 | 2481 | the requirements for a sender type |
2482 | 2482 | that can connect with a specific receiver type. |
2483 | 2483 | The \tcode{get_env} customization point object is used to access |
|
2532 | 2532 | @\libconcept{sender}@<Sndr> && bool_constant<@\exposid{is-dependent-sender-helper}@<Sndr>()>::value; |
2533 | 2533 |
|
2534 | 2534 | template<class Sndr, class Rcvr> |
2535 | | - concept @\deflibconcept{sender_to}@ = |
| 2535 | + concept @\defexposconcept{sender-to}@ = |
2536 | 2536 | @\libconcept{sender_in}@<Sndr, env_of_t<Rcvr>> && |
2537 | | - @\libconcept{receiver_of}@<Rcvr, completion_signatures_of_t<Sndr, env_of_t<Rcvr>>> && |
| 2537 | + @\exposconcept{receiver-of}@<Rcvr, completion_signatures_of_t<Sndr, env_of_t<Rcvr>>> && |
2538 | 2538 | requires (Sndr&& sndr, Rcvr&& rcvr) { |
2539 | 2539 | connect(std::forward<Sndr>(sndr), std::forward<Rcvr>(rcvr)); |
2540 | 2540 | }; |
|
3199 | 3199 | return awaiter{fn}; |
3200 | 3200 | } |
3201 | 3201 |
|
3202 | | - @\exposid{operation-state-task}@ @\exposid{connect-awaitable}@(DS sndr, DR rcvr) requires @\libconcept{receiver_of}@<DR, Sigs> { |
| 3202 | + @\exposid{operation-state-task}@ @\exposid{connect-awaitable}@(DS sndr, DR rcvr) requires @\exposconcept{receiver-of}@<DR, Sigs> { |
3203 | 3203 | exception_ptr ep; |
3204 | 3204 | try { |
3205 | 3205 | if constexpr (@\libconcept{same_as}@<V, void>) { |
|
3251 | 3251 | \item |
3252 | 3252 | \tcode{\libconcept{sender_in}<Sndr, env_of_t<Rcvr>>} |
3253 | 3253 | \item |
3254 | | -\tcode{\libconcept{receiver_of}<Rcvr, completion_signatures_of_t<Sndr, env_of_t<Rcvr>>>} |
| 3254 | +\tcode{\exposconcept{receiver-of}<Rcvr, completion_signatures_of_t<Sndr, env_of_t<Rcvr>>>} |
3255 | 3255 | \end{itemize} |
3256 | 3256 |
|
3257 | 3257 | \rSec2[exec.factories]{Sender factories} |
|
6153 | 6153 |
|
6154 | 6154 | \pnum |
6155 | 6155 | For a subexpression \tcode{sndr}, let \tcode{Sndr} be \tcode{decltype((sndr))}. |
6156 | | -If \tcode{\libconcept{sender_to}<Sndr, \exposid{sync-wait-receiver}<\linebreak Sndr>>} |
| 6156 | +If \tcode{\exposconcept{sender-to}<Sndr, \exposid{sync-wait-receiver}<\linebreak Sndr>>} |
6157 | 6157 | is \tcode{false}, |
6158 | 6158 | the expression \tcode{sync_wait.apply_sender(sndr)} is ill-formed; |
6159 | 6159 | otherwise, it is equivalent to: |
|
6831 | 6831 | \pnum |
6832 | 6832 | Let \exposid{sndr} be an expression of type \exposid{run-loop-sender}, |
6833 | 6833 | let \exposid{rcvr} be an expression |
6834 | | -such that \tcode{\libconcept{receiver_of}<decltype((\exposid{rcvr})), CS>} is \tcode{true} |
| 6834 | +such that \tcode{\exposconcept{receiver-of}<decl\-type((\exposid{rcvr})), CS>} is \tcode{true} |
6835 | 6835 | where \tcode{CS} is the \tcode{completion_signatures} specialization above. |
6836 | 6836 | Let \tcode{C} be either \tcode{set_value_t} or \tcode{set_stopped_t}. |
6837 | 6837 | Then: |
|
7027 | 7027 | template<class Sndr, class Promise> |
7028 | 7028 | concept @\defexposconcept{awaitable-sender}@ = |
7029 | 7029 | @\exposconcept{single-sender}@<Sndr, env_of_t<Promise>> && |
7030 | | - @\libconcept{sender_to}@<Sndr, |
| 7030 | + @\exposconcept{sender-to}@<Sndr, |
7031 | 7031 | typename @\exposid{sender-awaitable}@<Sndr, Promise>::@\exposid{awaitable-receiver}@> && // \seebelow |
7032 | 7032 | requires (Promise& p) { |
7033 | 7033 | { p.unhandled_stopped() } -> @\libconcept{convertible_to}@<coroutine_handle<>>; |
|
7422 | 7422 | \pnum |
7423 | 7423 | Let \tcode{sndr} be an expression of type \exposid{inline-sender}, |
7424 | 7424 | let \tcode{rcvr} be an expression such that |
7425 | | -\tcode{\libconcept{receiver_of}<decltype((rcvr)), CS>} is \tcode{true} |
| 7425 | +\tcode{\exposconcept{receiver-of}<decl\-type((rcvr)), CS>} is \tcode{true} |
7426 | 7426 | where \tcode{CS} is \tcode{completion_signatures<set_value_t()>}, |
7427 | 7427 | then the expression \tcode{connect(sndr, rcvr)} has |
7428 | 7428 | type \tcode{\exposid{inline-state}<remove_cvref_t<decltype((rcvr))>>} |
|
0 commit comments