|
5010 | 5010 | that is initialized with \tcode{addressof(\exposid{sndr})} |
5011 | 5011 | if \tcode{bool(\exposid{assoc})} is \tcode{true} and |
5012 | 5012 | with \tcode{nullptr} otherwise, |
5013 | | -then returns \tcode{pair{std::move(\exposid{assoc}), std::move(u)}}. |
| 5013 | +then returns \tcode{pair\{std::move(\exposid{assoc}), std::\brk move(u)\}}. |
5014 | 5014 | \end{itemdescr} |
5015 | 5015 |
|
5016 | 5016 | \pnum |
|
5884 | 5884 | private: |
5885 | 5885 | using @\exposid{alloc-t}@ = // \expos |
5886 | 5886 | allocator_traits<Alloc>::template rebind_alloc<@\exposid{spawn-state}@>; |
5887 | | - using @\exposid{assoc-t}@ = remove_cvref_t<decltype(declval<Token&>().try_associate())>; // \expos |
| 5887 | + using @\exposid{assoc-t}@ = // \expos |
| 5888 | + remove_cvref_t<decltype(declval<Token&>().try_associate())>; |
5888 | 5889 |
|
5889 | 5890 | @\exposid{alloc-t}@ @\exposid{alloc}@; // \expos |
5890 | 5891 | @\exposid{op-t}@ @\exposid{op}@; // \expos |
|
5903 | 5904 | \effects |
5904 | 5905 | Initializes |
5905 | 5906 | \exposid{alloc} with \tcode{std::move(alloc)}, |
5906 | | -\exposid{op} with \tcode{connect(std::move(sndr), \exposid{spawn-receiver}(this))}, and |
| 5907 | +\exposid{op} with \tcode{connect(std::move(sndr), \exposid{spawn-re\-ceiv\-er}(this))}, and |
5907 | 5908 | \exposid{assoc} with \tcode{token.try_associate()}. |
5908 | 5909 | \end{itemdescr} |
5909 | 5910 |
|
|
7671 | 7672 | \rSec2[exec.scope.concepts]{Execution scope concepts} |
7672 | 7673 |
|
7673 | 7674 | \pnum |
7674 | | -The \libconcept{scope_assocation} concept defines |
| 7675 | +The \libconcept{scope_association} concept defines |
7675 | 7676 | the requirements on a type \tcode{Assoc}. |
7676 | 7677 | An object of type \tcode{Assoc} is \defn{engaged} |
7677 | 7678 | if and only if it owns an association with an async scope, |
|
7681 | 7682 | namespace std::execution { |
7682 | 7683 | template<class Assoc> |
7683 | 7684 | concept @\deflibconcept{scope_association}@ = |
7684 | | - movable<Assoc> && |
| 7685 | + @\libconcept{movable}@<Assoc> && |
7685 | 7686 | is_nothrow_move_constructible_v<Assoc> && |
7686 | 7687 | is_nothrow_move_assignable_v<Assoc> && |
7687 | | - default_initializable<Assoc> && |
| 7688 | + @\libconcept{default_initializable}@<Assoc> && |
7688 | 7689 | requires(const Assoc assoc) { |
7689 | 7690 | { static_cast<bool>(assoc) } noexcept; |
7690 | | - { assoc.try_associate() } -> same_as<Assoc>; |
| 7691 | + { assoc.try_associate() } -> @\libconcept{same_as}@<Assoc>; |
7691 | 7692 | }; |
7692 | 7693 | } |
7693 | 7694 | \end{codeblock} |
|
7993 | 7994 | // \ref{exec.simple.counting.token}, token |
7994 | 7995 | struct token; |
7995 | 7996 |
|
7996 | | - // \ref{exec.simple.counting.assoc}, assoc |
7997 | 7997 | using @\exposid{assoc-t}@ = @\exposid{association-t}@<simple_counting_scope>; // \expos |
7998 | 7998 |
|
7999 | 7999 | static constexpr size_t max_associations = @\UNSP{\impldef{value of \tcode{std::execution::simple_counting_scope::max_associations}}}@; |
|
0 commit comments