|
1264 | 1264 | \end{codeblock}
|
1265 | 1265 | if \tcode{expr} is potentially-throwing; otherwise, \tcode{expr}.
|
1266 | 1266 | \tcode{\exposid{TRY-SET-VALUE}(rcvr, expr)} is
|
1267 |
| -\tcode{\exposid{TRY-EVAL}(rcvr, \exposid{SET-VALUE}(rcvr, expr))} |
| 1267 | +\begin{codeblock} |
| 1268 | +@\exposid{TRY-EVAL}@(rcvr, @\exposid{SET-VALUE}@(rcvr, expr)) |
| 1269 | +\end{codeblock} |
1268 | 1270 | except that \tcode{rcvr} is evaluated only once.
|
1269 | 1271 |
|
1270 | 1272 | \begin{itemdecl}
|
|
1282 | 1284 | If all of the types
|
1283 | 1285 | \tcode{COMPL-DOMAIN(set_value_t)},
|
1284 | 1286 | \tcode{COMPL-DOMAIN(set_error_t)}, and
|
1285 |
| -\tcode{COMPL-DOMAIN(set_stopped_t)} are ill-formed, |
| 1287 | +\tcode{COMPL-DO\-MAIN(set_stopped_t)} are ill-formed, |
1286 | 1288 | \tcode{completion-domain<Default>(sndr)} is
|
1287 | 1289 | a default-constructed prvalue of type \tcode{Default}.
|
1288 | 1290 | Otherwise, if they all share a common type\iref{meta.trans.other}
|
|
1496 | 1498 | \mandates
|
1497 | 1499 | The following expressions are \tcode{true}:
|
1498 | 1500 | \begin{itemize}
|
1499 |
| -\item @\libconcept{semiregular}@<Tag> |
1500 |
| -\item @\exposconcept{movable-value}@<Data> |
1501 |
| -\item (@\libconcept{sender}@<Child> \&\&...) |
| 1501 | +\item \tcode{\libconcept{semiregular}<Tag>} |
| 1502 | +\item \tcode{\exposconcept{movable-value}<Data>} |
| 1503 | +\item \tcode{(\libconcept{sender}<Child> \&\&...)} |
1502 | 1504 | \end{itemize}
|
1503 | 1505 |
|
1504 | 1506 | \pnum
|
|
1512 | 1514 | \begin{codeblock}
|
1513 | 1515 | namespace std::execution {
|
1514 | 1516 | template<class Tag>
|
1515 |
| - concept @\defexposconcept{completion-tag}@ = // \expos |
| 1517 | + concept @\defexposconcept{completion-tag}@ = // \expos |
1516 | 1518 | @\libconcept{same_as}@<Tag, set_value_t> || @\libconcept{same_as}@<Tag, set_error_t> || @\libconcept{same_as}@<Tag, set_stopped_t>;
|
1517 | 1519 |
|
1518 | 1520 | template<template<class...> class T, class... Args>
|
1519 |
| - concept @\defexposconcept{valid-specialization}@ = requires { typename T<Args...>; }; // \expos |
| 1521 | + concept @\defexposconcept{valid-specialization}@ = // \expos |
| 1522 | + requires { typename T<Args...>; }; |
1520 | 1523 |
|
1521 | 1524 | struct @\exposid{default-impls}@ { // \expos
|
1522 | 1525 | static constexpr auto @\exposid{get-attrs}@ = @\seebelow@;
|
|
1560 | 1563 | using receiver_concept = receiver_t;
|
1561 | 1564 |
|
1562 | 1565 | using @\exposid{tag-t}@ = tag_of_t<Sndr>; // \expos
|
1563 |
| - using @\exposid{state-t}@ = @\exposid{state-type}@<Sndr, Rcvr>; // \expos |
1564 |
| - static constexpr const auto& @\exposid{complete}@ = @\exposid{impls-for}@<tag-t>::@\exposid{complete}@; // \expos |
| 1566 | + using @\exposid{state-t}@ = @\exposid{state-type}@<Sndr, Rcvr>; // \expos |
| 1567 | + static constexpr const auto& @\exposid{complete}@ = @\exposid{impls-for}@<tag-t>::@\exposid{complete}@; // \expos |
1565 | 1568 |
|
1566 | 1569 | template<class... Args>
|
1567 | 1570 | requires @\exposconcept{callable}@<decltype(@\exposid{complete}@), Index, @\exposid{state-t}@&, Rcvr&, set_value_t, Args...>
|
|
2018 | 2021 | For a subexpression \tcode{c}
|
2019 | 2022 | such that \tcode{decltype((c))} is type \tcode{C}, and
|
2020 | 2023 | an lvalue \tcode{p} of type \tcode{Promise},
|
2021 |
| -\tcode{\exposid{await-result-type}<C, Promise>} denotes |
| 2024 | +\tcode{\exposid{await-result-\newline type}<C, Promise>} denotes |
2022 | 2025 | the type \tcode{decltype(\exposid{GET-AWAITER}(c, p).await_resume())}.
|
2023 | 2026 |
|
2024 | 2027 | \pnum
|
|
0 commit comments