|
200 | 200 |
|
201 | 201 | <p class="text-right"><small> |
202 | 202 | 最終更新日時(UTC): |
203 | | - <span itemprop="datePublished" content="2025-09-22T16:01:49"> |
204 | | - 2025年09月22日 16時01分49秒 |
| 203 | + <span itemprop="datePublished" content="2026-01-16T17:37:38"> |
| 204 | + 2026年01月16日 17時37分38秒 |
205 | 205 | </span> |
206 | 206 | <br/> |
207 | 207 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
208 | | - <span itemprop="name">Raclamusi</span> |
| 208 | + <span itemprop="name">yoh</span> |
209 | 209 | </span> |
210 | 210 | が更新 |
211 | 211 | </small></p> |
@@ -300,12 +300,7 @@ <h3>Senderアルゴリズムタグ <code>when_all</code></h3> |
300 | 300 | <span class="n">state</span><span class="p">.</span><span class="n">on_stop</span><span class="p">.</span><span class="n"><a href="../../optional/optional/emplace.html">emplace</a></span><span class="p">(</span> |
301 | 301 | <span class="n"><a href="../get_stop_token.html">get_stop_token</a></span><span class="p">(</span><span class="n"><a href="get_env.html">get_env</a></span><span class="p">(</span><span class="n">rcvr</span><span class="p">)),</span> |
302 | 302 | <span class="n"><a href="on-stop-request.html">on-stop-request</a></span><span class="p">{</span><span class="n">state</span><span class="p">.</span><span class="n">stop_src</span><span class="p">});</span> |
303 | | - <span class="k">if</span> <span class="p">(</span><span class="n">state</span><span class="p">.</span><span class="n">stop_src</span><span class="p">.</span><span class="n"><a href="../../stop_token/inplace_stop_source/stop_requested.html">stop_requested()</a></span><span class="p">)</span> <span class="p">{</span> |
304 | | - <span class="n">state</span><span class="p">.</span><span class="n">on_stop</span><span class="p">.</span><span class="n"><a href="../../optional/optional/reset.html">reset()</a></span><span class="p">;</span> |
305 | | - <span class="n"><a href="set_stopped.html">set_stopped</a></span><span class="p">(</span><span class="n"><a href="../../utility/move.html">std::move</a></span><span class="p">(</span><span class="n">rcvr</span><span class="p">));</span> |
306 | | - <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> |
307 | | - <span class="p">(</span><span class="n"><a href="start.html">start</a></span><span class="p">(</span><span class="n">ops</span><span class="p">),</span> <span class="p">...);</span> |
308 | | - <span class="p">}</span> |
| 303 | + <span class="p">(</span><span class="n"><a href="start.html">start</a></span><span class="p">(</span><span class="n">ops</span><span class="p">),</span> <span class="p">...);</span> |
309 | 304 | <span class="p">}</span> |
310 | 305 | </code></pre></div> |
311 | 306 | </p> |
@@ -456,10 +451,13 @@ <h3>クラステンプレート<code>make-state</code></h3> |
456 | 451 | </li> |
457 | 452 | <li> |
458 | 453 | <p>それ以外のとき、下記を評価する。</p> |
459 | | -<p><div class="codehilite"><pre><span></span><code><span class="n">on_stop</span><span class="p">.</span><span class="n"><a href="../../optional/optional/reset.html">reset()</a></span><span class="p">;</span> |
460 | | -<span class="n"><a href="set_stopped.html">set_stopped</a></span><span class="p">(</span><span class="n"><a href="../../utility/move.html">std::move</a></span><span class="p">(</span><span class="n">rcvr</span><span class="p">));</span> |
| 454 | +<p><div class="codehilite"><pre><span></span><code><span class="k">if</span> <span class="nf">constexpr</span><span class="p">(</span><span class="n">sends</span><span class="o">-</span><span class="n">stopped</span><span class="p">)</span> <span class="p">{</span> |
| 455 | + <span class="n">on_stop</span><span class="p">.</span><span class="n"><a href="../../optional/optional/reset.html">reset()</a></span><span class="p">;</span> |
| 456 | + <span class="n"><a href="set_stopped.html">set_stopped</a></span><span class="p">(</span><span class="n"><a href="../../utility/move.html">std::move</a></span><span class="p">(</span><span class="n">rcvr</span><span class="p">));</span> |
| 457 | +<span class="p">}</span> |
461 | 458 | </code></pre></div> |
462 | 459 | </p> |
| 460 | +<p>ここで、<code>Sndrs</code>の要素<code>S</code>において<code><a href="completion_signatures_of_t.html">completion_signatures_of_t</a><S, when-all-env<Env>></code>が<code><a href="set_stopped.html">set_stopped_t</a>()</code>を含む<code>S</code>が存在するときに限って<code>sends-stopped</code>は<code>true</code>に等しい。</p> |
463 | 461 | </li> |
464 | 462 | </ul> |
465 | 463 | <h2>カスタマイゼーションポイント</h2> |
@@ -601,6 +599,7 @@ <h2>参照</h2> |
601 | 599 | <li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html" target="_blank">P2300R10 <code>std::execution</code></a></li> |
602 | 600 | <li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3396r1.html" target="_blank">P3396R1 std::execution wording fixes</a></li> |
603 | 601 | <li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3557r3.html" target="_blank">P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions</a></li> |
| 602 | +<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3887r1.pdf" target="_blank">P3887R1 Make <code>when_all</code> a Ronseal Algorithm</a></li> |
604 | 603 | <li><a href="https://cplusplus.github.io/LWG/issue4203" target="_blank">LWG 4203. Constraints on <code>get-state</code> functions are incorrect</a></li> |
605 | 604 | <li><a href="https://cplusplus.github.io/LWG/issue4227" target="_blank">LWG 4227. Missing <code>noexcept</code> operator in [exec.when.all]</a></li> |
606 | 605 | </ul></div> |
|
0 commit comments