|
1594 | 1594 | \begin{codeblock} |
1595 | 1595 | namespace std::execution { |
1596 | 1596 | template<class Tag> |
1597 | | - concept @\defexposconcept{completion-tag}@ = // \expos |
| 1597 | + concept @\defexposconceptnc{completion-tag}@ = // \expos |
1598 | 1598 | @\libconcept{same_as}@<Tag, set_value_t> || @\libconcept{same_as}@<Tag, set_error_t> || @\libconcept{same_as}@<Tag, set_stopped_t>; |
1599 | 1599 |
|
1600 | 1600 | template<template<class...> class T, class... Args> |
1601 | | - concept @\defexposconcept{valid-specialization}@ = // \expos |
| 1601 | + concept @\defexposconceptnc{valid-specialization}@ = // \expos |
1602 | 1602 | requires { typename T<Args...>; }; |
1603 | 1603 |
|
1604 | | - struct @\exposid{default-impls}@ { // \expos |
1605 | | - static constexpr auto @\exposid{get-attrs}@ = @\seebelow@; // \expos |
1606 | | - static constexpr auto @\exposid{get-env}@ = @\seebelow@; // \expos |
1607 | | - static constexpr auto @\exposid{get-state}@ = @\seebelow@; // \expos |
1608 | | - static constexpr auto @\exposid{start}@ = @\seebelow@; // \expos |
1609 | | - static constexpr auto @\exposid{complete}@ = @\seebelow@; // \expos |
| 1604 | + struct @\exposidnc{default-impls}@ { // \expos |
| 1605 | + static constexpr auto @\exposidnc{get-attrs}@ = @\seebelownc@; // \expos |
| 1606 | + static constexpr auto @\exposidnc{get-env}@ = @\seebelownc@; // \expos |
| 1607 | + static constexpr auto @\exposidnc{get-state}@ = @\seebelownc@; // \expos |
| 1608 | + static constexpr auto @\exposidnc{start}@ = @\seebelownc@; // \expos |
| 1609 | + static constexpr auto @\exposidnc{complete}@ = @\seebelownc@; // \expos |
1610 | 1610 | }; |
1611 | 1611 |
|
1612 | 1612 | template<class Tag> |
1613 | | - struct @\exposid{impls-for}@ : @\exposid{default-impls}@ {}; // \expos |
| 1613 | + struct @\exposidnc{impls-for}@ : @\exposidnc{default-impls}@ {}; // \expos |
1614 | 1614 |
|
1615 | 1615 | template<class Sndr, class Rcvr> // \expos |
1616 | 1616 | using @\exposid{state-type}@ = decay_t<@\exposid{call-result-t}@< |
|
1622 | 1622 | @\exposid{state-type}@<Sndr, Rcvr>&, const Rcvr&>; |
1623 | 1623 |
|
1624 | 1624 | template<class Sndr, size_t I = 0> |
1625 | | - using @\exposid{child-type}@ = decltype(declval<Sndr>().template @\exposid{get}@<I+2>()); // \expos |
| 1625 | + using @\exposidnc{child-type}@ = decltype(declval<Sndr>().template @\exposidnc{get}@<I+2>()); // \expos |
1626 | 1626 |
|
1627 | 1627 | template<class Sndr> |
1628 | | - using @\exposid{indices-for}@ = remove_reference_t<Sndr>::@\exposid{indices-for}@; // \expos |
| 1628 | + using @\exposidnc{indices-for}@ = remove_reference_t<Sndr>::@\exposidnc{indices-for}@; // \expos |
1629 | 1629 |
|
1630 | 1630 | template<class Sndr, class Rcvr> |
1631 | | - struct @\exposid{basic-state}@ { // \expos |
| 1631 | + struct @\exposidnc{basic-state}@ { // \expos |
1632 | 1632 | @\exposid{basic-state}@(Sndr&& sndr, Rcvr&& rcvr) noexcept(@\seebelow@) |
1633 | 1633 | : @\exposid{rcvr}@(std::move(rcvr)) |
1634 | 1634 | , @\exposid{state}@(@\exposid{impls-for}@<tag_of_t<Sndr>>::@\exposid{get-state}@(std::forward<Sndr>(sndr), @\exposid{rcvr}@)) { } |
1635 | 1635 |
|
1636 | | - Rcvr @\exposid{rcvr}@; // \expos |
1637 | | - @\exposid{state-type}@<Sndr, Rcvr> @\exposid{state}@; // \expos |
| 1636 | + Rcvr @\exposidnc{rcvr}@; // \expos |
| 1637 | + @\exposidnc{state-type}@<Sndr, Rcvr> @\exposidnc{state}@; // \expos |
1638 | 1638 | }; |
1639 | 1639 |
|
1640 | 1640 | template<class Sndr, class Rcvr, class Index> |
1641 | 1641 | requires @\exposconcept{valid-specialization}@<@\exposid{env-type}@, Index, Sndr, Rcvr> |
1642 | | - struct @\exposid{basic-receiver}@ { // \expos |
| 1642 | + struct @\exposidnc{basic-receiver}@ { // \expos |
1643 | 1643 | using receiver_concept = receiver_t; |
1644 | 1644 |
|
1645 | | - using @\exposid{tag-t}@ = tag_of_t<Sndr>; // \expos |
1646 | | - using @\exposid{state-t}@ = @\exposid{state-type}@<Sndr, Rcvr>; // \expos |
1647 | | - static constexpr const auto& @\exposid{complete}@ = @\exposid{impls-for}@<@\exposid{tag-t}@>::@\exposid{complete}@; // \expos |
| 1645 | + using @\exposidnc{tag-t}@ = tag_of_t<Sndr>; // \expos |
| 1646 | + using @\exposidnc{state-t}@ = @\exposidnc{state-type}@<Sndr, Rcvr>; // \expos |
| 1647 | + static constexpr const auto& @\exposidnc{complete}@ = @\exposidnc{impls-for}@<@\exposidnc{tag-t}@>::@\exposidnc{complete}@; // \expos |
1648 | 1648 |
|
1649 | 1649 | template<class... Args> |
1650 | 1650 | requires @\exposconcept{callable}@<decltype(@\exposid{complete}@), Index, @\exposid{state-t}@&, Rcvr&, set_value_t, Args...> |
|
1667 | 1667 | return @\exposid{impls-for}@<tag-t>::@\exposid{get-env}@(Index(), op->@\exposid{state}@, op->@\exposid{rcvr}@); |
1668 | 1668 | } |
1669 | 1669 |
|
1670 | | - @\exposid{basic-state}@<Sndr, Rcvr>* @\exposid{op}@; // \expos |
| 1670 | + @\exposidnc{basic-state}@<Sndr, Rcvr>* @\exposidnc{op}@; // \expos |
1671 | 1671 | }; |
1672 | 1672 |
|
1673 | | - constexpr auto @\exposid{connect-all}@ = @\seebelow@; // \expos |
| 1673 | + constexpr auto @\exposidnc{connect-all}@ = @\seebelownc@; // \expos |
1674 | 1674 |
|
1675 | 1675 | template<class Sndr, class Rcvr> |
1676 | | - using @\exposid{connect-all-result}@ = @\exposid{call-result-t}@< // \expos |
| 1676 | + using @\exposidnc{connect-all-result}@ = @\exposidnc{call-result-t}@< // \expos |
1677 | 1677 | decltype(@\exposid{connect-all}@), @\exposid{basic-state}@<Sndr, Rcvr>*, Sndr, @\exposid{indices-for}@<Sndr>>; |
1678 | 1678 |
|
1679 | 1679 | template<class Sndr, class Rcvr> |
1680 | 1680 | requires @\exposconcept{valid-specialization}@<@\exposid{state-type}@, Sndr, Rcvr> && |
1681 | 1681 | @\exposconcept{valid-specialization}@<@\exposid{connect-all-result}@, Sndr, Rcvr> |
1682 | | - struct @\exposid{basic-operation}@ : @\exposid{basic-state}@<Sndr, Rcvr> { // \expos |
| 1682 | + struct @\exposidnc{basic-operation}@ : @\exposidnc{basic-state}@<Sndr, Rcvr> { // \expos |
1683 | 1683 | using operation_state_concept = operation_state_t; |
1684 | | - using @\exposid{tag-t}@ = tag_of_t<Sndr>; // \expos |
| 1684 | + using @\exposidnc{tag-t}@ = tag_of_t<Sndr>; // \expos |
1685 | 1685 |
|
1686 | | - @\exposid{connect-all-result}@<Sndr, Rcvr> @\exposid{inner-ops}@; // \expos |
| 1686 | + @\exposidnc{connect-all-result}@<Sndr, Rcvr> @\exposidnc{inner-ops}@; // \expos |
1687 | 1687 |
|
1688 | | - @\exposid{basic-operation}@(Sndr&& sndr, Rcvr&& rcvr) noexcept(@\seebelow@) // \expos |
| 1688 | + @\exposidnc{basic-operation}@(Sndr&& sndr, Rcvr&& rcvr) noexcept(@\seebelownc@) // \expos |
1689 | 1689 | : @\exposid{basic-state}@<Sndr, Rcvr>(std::forward<Sndr>(sndr), std::move(rcvr)), |
1690 | 1690 | @\exposid{inner-ops}@(@\exposid{connect-all}@(this, std::forward<Sndr>(sndr), @\exposid{indices-for}@<Sndr>())) |
1691 | 1691 | {} |
|
1697 | 1697 | }; |
1698 | 1698 |
|
1699 | 1699 | template<class Sndr, class Env> |
1700 | | - using @\exposid{completion-signatures-for}@ = @\seebelow@; // \expos |
| 1700 | + using @\exposidnc{completion-signatures-for}@ = @\seebelownc@; // \expos |
1701 | 1701 |
|
1702 | 1702 | template<class Tag, class Data, class... Child> |
1703 | | - struct @\exposid{basic-sender}@ : @\exposid{product-type}@<Tag, Data, Child...> { // \expos |
| 1703 | + struct @\exposidnc{basic-sender}@ : @\exposidnc{product-type}@<Tag, Data, Child...> { // \expos |
1704 | 1704 | using sender_concept = sender_t; |
1705 | | - using @\exposid{indices-for}@ = index_sequence_for<Child...>; // \expos |
| 1705 | + using @\exposidnc{indices-for}@ = index_sequence_for<Child...>; // \expos |
1706 | 1706 |
|
1707 | 1707 | decltype(auto) get_env() const noexcept { |
1708 | 1708 | auto& [_, data, ...child] = *this; |
|
0 commit comments