|
2085 | 2085 | where \tcode{\placeholder{unspecified-exception}} is
|
2086 | 2086 | a type derived from \tcode{exception}.
|
2087 | 2087 |
|
2088 |
| -\begin{itemdecl} |
2089 |
| -template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@ Env> |
2090 |
| - constexpr auto @\exposid{write-env}@(Sndr&& sndr, Env&& env); // \expos |
2091 |
| -\end{itemdecl} |
2092 |
| - |
2093 |
| -\begin{itemdescr} |
2094 |
| -\pnum |
2095 |
| -\exposid{write-env} is an exposition-only sender adaptor that, |
2096 |
| -when connected with a receiver \tcode{rcvr}, |
2097 |
| -connects the adapted sender with a receiver |
2098 |
| -whose execution environment is the result of |
2099 |
| -joining the \exposconcept{queryable} argument \tcode{env} |
2100 |
| -to the result of \tcode{get_env(rcvr)}. |
2101 |
| - |
2102 |
| -\pnum |
2103 |
| -Let \exposid{write-env-t} be an exposition-only empty class type. |
2104 |
| - |
2105 |
| -\pnum |
2106 |
| -\returns |
2107 |
| -\begin{codeblock} |
2108 |
| -@\exposid{make-sender}@(@\exposid{write-env-t}@(), std::forward<Env>(env), std::forward<Sndr>(sndr)) |
2109 |
| -\end{codeblock} |
2110 |
| - |
2111 |
| -\pnum |
2112 |
| -\remarks |
2113 |
| -The exposition-only class template \exposid{impls-for}\iref{exec.snd.general} |
2114 |
| -is specialized for \exposid{write-env-t} as follows: |
2115 |
| -\begin{codeblock} |
2116 |
| -template<> |
2117 |
| -struct @\exposid{impls-for}@<@\exposid{write-env-t}@> : @\exposid{default-impls}@ { |
2118 |
| - static constexpr auto @\exposid{get-env}@ = |
2119 |
| - [](auto, const auto& state, const auto& rcvr) noexcept { |
2120 |
| - return @\seebelow@; |
2121 |
| - }; |
2122 |
| -}; |
2123 |
| -\end{codeblock} |
2124 |
| -Invocation of |
2125 |
| -\tcode{\exposid{impls-for}<\exposid{write-env-t}>::\exposid{get-env}} |
2126 |
| -returns an object \tcode{e} such that |
2127 |
| -\begin{itemize} |
2128 |
| -\item |
2129 |
| -\tcode{decltype(e)} models \exposconcept{queryable} and |
2130 |
| -\item |
2131 |
| -given a query object \tcode{q}, |
2132 |
| -the expression \tcode{e.query(q)} is expression-equivalent |
2133 |
| -to \tcode{state.query(q)} if that expression is valid, |
2134 |
| -otherwise, \tcode{e.query(q)} is expression-equivalent |
2135 |
| -to \tcode{get_env(rcvr).que\-ry(q)}. |
2136 |
| -\end{itemize} |
2137 |
| -\end{itemdescr} |
2138 |
| - |
2139 | 2088 | \begin{itemdecl}
|
2140 | 2089 | template<class T, class Context>
|
2141 | 2090 | decltype(auto) @\exposid{allocator-aware-forward}@(T&& obj, Context&& context); // \expos
|
|
0 commit comments