Skip to content

Commit f6badfa

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 0339ec4 commit f6badfa

File tree

10 files changed

+580
-368
lines changed

10 files changed

+580
-368
lines changed

reference/execution/execution/connect.html

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-04-18T07:44:08">
204-
2025年04月18日 07時44分08秒
203+
<span itemprop="datePublished" content="2025-04-18T08:15:49">
204+
2025年04月18日 08時15分49秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -235,8 +235,8 @@ <h2>概要</h2>
235235
<p><code>connect</code>は、<a href="sender.html">Sender</a><a href="receiver.html">Receiver</a>を接続した結果<a href="operation_state.html">Operation State</a>を返す<a class="cpprefjp-defined-word" data-desc="プログラム定義型に対するオーバーロードが許されている標準関数名について、中でいい感じにオーバーロード解決して呼び出してくれる関数オブジェクト">カスタマイゼーションポイントオブジェクト</a>である。</p>
236236
<p><a class="cpprefjp-defined-word" data-desc="プログラム定義型に対するオーバーロードが許されている標準関数名について、中でいい感じにオーバーロード解決して呼び出してくれる関数オブジェクト">カスタマイゼーションポイントオブジェクト</a>の呼び出し式<code>connect(sndr, rcvr)</code>は、下記の動作となる。</p>
237237
<ul>
238-
<li><code><a href="transform_sender.html">transform_sender</a></code>を呼び出して、<code>sndr</code>を新しいSender<code>new_sndr</code>に変換する。大半のケースでは無変換。</li>
239-
<li>呼び出し式が<a class="cpprefjp-defined-word" data-desc="プログラムが文法規則・診断対象の意味規則・単一定義規則を満たすこと" href="../../../implementation-compliance.html#dfn-well-formed">適格</a>であるならば、<code>return new_sndr.connect(rcvr)</code>相当</li>
238+
<li><code><a href="transform_sender.html">transform_sender</a></code>により<code>sndr</code>から新しいSender<code>new_sndr</code>へ変換する。(多くのケースで無変換)</li>
239+
<li>呼び出し式が<a class="cpprefjp-defined-word" data-desc="プログラムが文法規則・診断対象の意味規則・単一定義規則を満たすこと" href="../../../implementation-compliance.html#dfn-well-formed">適格</a>であるならば、<code>new_sndr.connect(rcvr)</code>を返す</li>
240240
<li>そうでなければ、<code>new_sndr</code><a href="../../../lang/cpp20/coroutines.html">コルーチンのAwaitable型</a>とみなして<code>rcvr</code>と接続した結果を返す。</li>
241241
</ul>
242242
<h2>効果</h2>
@@ -254,16 +254,16 @@ <h3>Awaitable接続用へルパ</h3>
254254
<p>説明用のクラス<code>connect-awaitable-promise</code>, <code>operation-state-task</code>をそれぞれ下記の通り定義する。</p>
255255
<p><code>DS</code><code><a href="../../type_traits/decay.html">decay_t</a>&lt;decltype((new_sndr))&gt;</code>、型<code>DR</code><code><a href="../../type_traits/decay.html">decay_t</a>&lt;Rcvr&gt;</code>とする。</p>
256256
<p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span><span class="o">::</span><span class="n">execution</span> <span class="p">{</span>
257-
<span class="k">struct</span> <span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="nl">promise</span> <span class="p">:</span> <span class="n">with</span><span class="o">-</span><span class="n">await</span><span class="o">-</span><span class="n">transform</span><span class="o">&lt;</span><span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="n">promise</span><span class="o">&gt;</span> <span class="p">{</span>
257+
<span class="k">struct</span> <span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="nl">promise</span> <span class="p">:</span> <span class="n"><a href="with-await-transform.html">with-await-transform</a></span><span class="o">&lt;</span><span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="n">promise</span><span class="o">&gt;</span> <span class="p">{</span>
258258
<span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="n">promise</span><span class="p">(</span><span class="n">DS</span><span class="o">&amp;</span><span class="p">,</span> <span class="n">DR</span><span class="o">&amp;</span> <span class="n">rcvr</span><span class="p">)</span> <span class="k">noexcept</span> <span class="o">:</span> <span class="n">rcvr</span><span class="p">(</span><span class="n">rcvr</span><span class="p">)</span> <span class="p">{}</span>
259259

260260
<span class="n"><a href="../../coroutine/suspend_always.html">suspend_always</a></span> <span class="n">initial_suspend</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="k">return</span> <span class="p">{};</span> <span class="p">}</span>
261-
<span class="p">[[</span><span class="n">noreturn</span><span class="p">]]</span> <span class="n"><a href="../../coroutine/suspend_always.html">suspend_always</a></span> <span class="n">final_suspend</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="n">terminate</span><span class="p">();</span> <span class="p">}</span>
262-
<span class="p">[[</span><span class="n">noreturn</span><span class="p">]]</span> <span class="kt">void</span> <span class="n">unhandled_exception</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="n">terminate</span><span class="p">();</span> <span class="p">}</span>
263-
<span class="p">[[</span><span class="n">noreturn</span><span class="p">]]</span> <span class="kt">void</span> <span class="n">return_void</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="n">terminate</span><span class="p">();</span> <span class="p">}</span>
261+
<span class="p">[[</span><span class="n">noreturn</span><span class="p">]]</span> <span class="n"><a href="../../coroutine/suspend_always.html">suspend_always</a></span> <span class="n">final_suspend</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="n"><a href="../../exception/terminate.html">terminate()</a></span><span class="p">;</span> <span class="p">}</span>
262+
<span class="p">[[</span><span class="n">noreturn</span><span class="p">]]</span> <span class="kt">void</span> <span class="n">unhandled_exception</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="n"><a href="../../exception/terminate.html">terminate()</a></span><span class="p">;</span> <span class="p">}</span>
263+
<span class="p">[[</span><span class="n">noreturn</span><span class="p">]]</span> <span class="kt">void</span> <span class="n">return_void</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span> <span class="n"><a href="../../exception/terminate.html">terminate()</a></span><span class="p">;</span> <span class="p">}</span>
264264

265265
<span class="n"><a href="../../coroutine/coroutine_handle.html">coroutine_handle</a></span><span class="o">&lt;&gt;</span> <span class="n">unhandled_stopped</span><span class="p">()</span> <span class="k">noexcept</span> <span class="p">{</span>
266-
<span class="n"><a href="set_stopped.html">set_stopped</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">rcvr</span><span class="p">));</span>
266+
<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>
267267
<span class="k">return</span> <span class="n"><a href="../../coroutine/noop_coroutine.html">noop_coroutine()</a></span><span class="p">;</span>
268268
<span class="p">}</span>
269269

@@ -285,7 +285,7 @@ <h3>Awaitable接続用へルパ</h3>
285285
<p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span><span class="o">::</span><span class="n">execution</span> <span class="p">{</span>
286286
<span class="k">struct</span> <span class="n">operation</span><span class="o">-</span><span class="n">state</span><span class="o">-</span><span class="n">task</span> <span class="p">{</span> <span class="c1">// exposition only</span>
287287
<span class="k">using</span> <span class="n">operation_state_concept</span> <span class="o">=</span> <span class="n"><a href="operation_state.html">operation_state_t</a></span><span class="p">;</span>
288-
<span class="k">using</span> <span class="n">promise_type</span> <span class="o">=</span> <span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="n">promise</span><span class="p">;</span>
288+
<span class="k">using</span> <span class="n"><a href="../../../lang/cpp20/coroutines.html">promise_type</a></span> <span class="o">=</span> <span class="n">connect</span><span class="o">-</span><span class="n">awaitable</span><span class="o">-</span><span class="n">promise</span><span class="p">;</span>
289289

290290
<span class="k">explicit</span> <span class="n">operation</span><span class="o">-</span><span class="n">state</span><span class="o">-</span><span class="n">task</span><span class="p">(</span><span class="n"><a href="../../coroutine/coroutine_handle.html">coroutine_handle&lt;&gt;</a></span> <span class="n">h</span><span class="p">)</span> <span class="k">noexcept</span> <span class="o">:</span> <span class="n">coro</span><span class="p">(</span><span class="n">h</span><span class="p">)</span> <span class="p">{}</span>
291291
<span class="n">operation</span><span class="o">-</span><span class="n">state</span><span class="o">-</span><span class="n">task</span><span class="p">(</span><span class="n">operation</span><span class="o">-</span><span class="n">state</span><span class="o">-</span><span class="n">task</span><span class="o">&amp;&amp;</span><span class="p">)</span> <span class="o">=</span> <span class="k">delete</span><span class="p">;</span>
@@ -308,7 +308,7 @@ <h3>Awaitable接続用へルパ</h3>
308308
<p><div class="codehilite"><pre><span></span><code><span class="n">completion_signatures</span><span class="o">&lt;</span>
309309
<span class="n"><i>SET-VALUE-SIG</i></span><span class="p">(</span><span class="n">V</span><span class="p">),</span>
310310
<span class="n"><a href="set_error.html">set_error_t</a></span><span class="p">(</span><span class="n"><a href="../../exception/exception_ptr.html">exception_ptr</a></span><span class="p">),</span>
311-
<span class="n">set_stopped_t</span><span class="p">()</span><span class="o">&gt;</span>
311+
<span class="n"><a href="set_stopped.html">set_stopped_t</a></span><span class="p">()</span><span class="o">&gt;</span>
312312
</code></pre></div>
313313
</p>
314314
<p>説明用のコールーチン<code>suspend-complete</code>を下記の通り定義する。</p>
@@ -331,15 +331,15 @@ <h3>Awaitable接続用へルパ</h3>
331331
<span class="n"><a href="../../exception/exception_ptr.html">exception_ptr</a></span> <span class="n">ep</span><span class="p">;</span>
332332
<span class="k">try</span> <span class="p">{</span>
333333
<span class="k">if</span> <span class="k">constexpr</span> <span class="p">(</span><span class="n"><a href="../../concepts/same_as.html">same_as</a></span><span class="o">&lt;</span><span class="n">V</span><span class="p">,</span> <span class="kt">void</span><span class="o">&gt;</span><span class="p">)</span> <span class="p">{</span>
334-
<span class="n">co_await</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">sndr</span><span class="p">);</span>
335-
<span class="n">co_await</span> <span class="n">suspend</span><span class="o">-</span><span class="n">complete</span><span class="p">(</span><span class="n">set_value</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">rcvr</span><span class="p">));</span>
334+
<span class="n">co_await</span> <span class="n"><a href="../../utility/move.html">std::move</a></span><span class="p">(</span><span class="n">sndr</span><span class="p">);</span>
335+
<span class="n">co_await</span> <span class="n">suspend</span><span class="o">-</span><span class="n">complete</span><span class="p">(</span><span class="n">set_value</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>
336336
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
337-
<span class="n">co_await</span> <span class="n">suspend</span><span class="o">-</span><span class="n">complete</span><span class="p">(</span><span class="n">set_value</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">rcvr</span><span class="p">),</span> <span class="n">co_await</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">sndr</span><span class="p">));</span>
337+
<span class="n">co_await</span> <span class="n">suspend</span><span class="o">-</span><span class="n">complete</span><span class="p">(</span><span class="n">set_value</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> <span class="n">co_await</span> <span class="n"><a href="../../utility/move.html">std::move</a></span><span class="p">(</span><span class="n">sndr</span><span class="p">));</span>
338338
<span class="p">}</span>
339339
<span class="p">}</span> <span class="k">catch</span><span class="p">(...)</span> <span class="p">{</span>
340340
<span class="n">ep</span> <span class="o">=</span> <span class="n"><a href="../../exception/current_exception.html">current_exception()</a></span><span class="p">;</span>
341341
<span class="p">}</span>
342-
<span class="n">co_await</span> <span class="n">suspend</span><span class="o">-</span><span class="n">complete</span><span class="p">(</span><span class="n">set_error</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">rcvr</span><span class="p">),</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">ep</span><span class="p">));</span>
342+
<span class="n">co_await</span> <span class="n">suspend</span><span class="o">-</span><span class="n">complete</span><span class="p">(</span><span class="n">set_error</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> <span class="n"><a href="../../utility/move.html">std::move</a></span><span class="p">(</span><span class="n">ep</span><span class="p">));</span>
343343
<span class="p">}</span>
344344
<span class="p">}</span>
345345
</code></pre></div>

reference/execution/execution/connect_result_t.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<meta property="og:url" content="https://cpprefjp.github.io/reference/execution/execution/connect_result_t.html" />
2929
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
3030
<meta property="og:type" content="article" />
31-
<meta property="og:description" content="[Sender型](sender.md)`Sndr`と[Receiver型]`Rcvr`を[接続](connect.md)した結果の[Operation State型](operation_state.md)を取得する。" />
31+
<meta property="og:description" content="[Sender型](sender.md)`Sndr`と[Receiver型](receiver.md)`Rcvr`を[接続(connect)](connect.md)した結果の[Operation State型](operation_state.md)を取得する。" />
3232
<meta name="twitter:card" content="summary" />
3333
<meta name="twitter:title" content="connect_result_t - cpprefjp C++日本語リファレンス" />
3434
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/execution/execution/connect_result_t.html" />
35-
<meta name="twitter:description" content="[Sender型](sender.md)`Sndr`と[Receiver型]`Rcvr`を[接続](connect.md)した結果の[Operation State型](operation_state.md)を取得する。" />
35+
<meta name="twitter:description" content="[Sender型](sender.md)`Sndr`と[Receiver型](receiver.md)`Rcvr`を[接続(connect)](connect.md)した結果の[Operation State型](operation_state.md)を取得する。" />
3636

3737

3838
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
@@ -200,8 +200,8 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-04-18T07:44:08">
204-
2025年04月18日 07時44分08秒
203+
<span itemprop="datePublished" content="2025-04-18T08:15:49">
204+
2025年04月18日 08時15分49秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -233,7 +233,7 @@
233233
</code></pre></div>
234234
</p>
235235
<h2>概要</h2>
236-
<p><a href="sender.html">Sender型</a><code>Sndr</code>[Receiver型]<code>Rcvr</code><a href="connect.html">接続</a>した結果の<a href="operation_state.html">Operation State型</a>を取得する。</p>
236+
<p><a href="sender.html">Sender型</a><code>Sndr</code><a href="receiver.html">Receiver型</a><code>Rcvr</code><a href="connect.html">接続(connect)</a>した結果の<a href="operation_state.html">Operation State型</a>を取得する。</p>
237237
<h2>バージョン</h2>
238238
<h3>言語</h3>
239239
<ul>

0 commit comments

Comments
 (0)