|
200 | 200 |
|
201 | 201 | <p class="text-right"><small> |
202 | 202 | 最終更新日時(UTC): |
203 | | - <span itemprop="datePublished" content="2025-08-16T12:31:08"> |
204 | | - 2025年08月16日 12時31分08秒 |
| 203 | + <span itemprop="datePublished" content="2026-01-19T03:03:20"> |
| 204 | + 2026年01月19日 03時03分20秒 |
205 | 205 | </span> |
206 | 206 | <br/> |
207 | 207 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
@@ -254,6 +254,15 @@ <h2>効果</h2> |
254 | 254 | <li><code><a href="sender_in.html">sender_in</a><Sndr, <a href="env_of_t.html">env_of_t</a><Rcvr>></code></li> |
255 | 255 | <li><code><a href="receiver_of.html">receiver_of</a><Rcvr, <a href="completion_signatures_of_t.html">completion_signatures_of_t</a><Sndr, <a href="env_of_t.html">env_of_t</a><Rcvr>>></code></li> |
256 | 256 | </ul> |
| 257 | +<p>下記を満たす右辺値式<code>rcvr2</code>が存在するとき、プログラムは<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../implementation-compliance.html#dfn-ill-formed">不適格</a>(<a class="cpprefjp-defined-word" data-desc="処理系は規則違反に対してエラーメッセージや警告を出さないかもしれない" href="../../../implementation-compliance.html#dfn-no-diagnostic-required">診断不要</a>)となる。</p> |
| 258 | +<ul> |
| 259 | +<li><code>decltype(rcvr2)</code>は<code><a href="receiver.html">receiver</a></code>のモデルである</li> |
| 260 | +<li><code>noexcept(rcvr2)</code>が<code>true</code></li> |
| 261 | +<li><code><a href="../../type_traits/is_same.html">is_same_v</a><decltype(<a href="get_env.html">get_env</a>(rcvr2)), decltype(get_env(rcvr))></code>が<code>true</code></li> |
| 262 | +<li><code>noexcept(execution::connect(sndr, rcvr))</code>が<code>true</code></li> |
| 263 | +<li><code>noexcept(execution::connect(sndr, rcvr2))</code>が<a class="cpprefjp-defined-word" data-desc="プログラムが文法規則・診断対象の意味規則・単一定義規則を満たすこと" href="../../../implementation-compliance.html#dfn-well-formed">適格</a>かつ<code>false</code>に評価される</li> |
| 264 | +</ul> |
| 265 | +<p>上記により<code><a href="get_completion_signatures.html">get_completion_signatures</a></code>内部のように、環境のコンテキストのみから<code>connect</code>操作の<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>送出有無を判断できるようになる。</p> |
257 | 266 | <h3>Awaitable接続用へルパ</h3> |
258 | 267 | <p>説明用のクラス<code>connect-awaitable-promise</code>, <code>operation-state-task</code>をそれぞれ下記の通り定義する。</p> |
259 | 268 | <p>型<code>DS</code>を<code><a href="../../type_traits/decay.html">decay_t</a><decltype((new_sndr))></code>、型<code>DR</code>を<code><a href="../../type_traits/decay.html">decay_t</a><Rcvr></code>とする。</p> |
@@ -405,6 +414,7 @@ <h2>参照</h2> |
405 | 414 | <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> |
406 | 415 | <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> |
407 | 416 | <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> |
| 417 | +<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3388r3.pdf" target="_blank">P3388R3 When Do You Know connect Doesn't Throw?</a></li> |
408 | 418 | <li><a href="https://cplusplus.github.io/LWG/issue4208" target="_blank">LWG 4208. Wording needs to ensure that in <code>connect(sndr, rcvr)</code> that <code>rcvr</code> expression is only evaluated once</a></li> |
409 | 419 | </ul></div> |
410 | 420 |
|
|
0 commit comments