|
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