Skip to content

Commit f5dbe42

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent dc92bc6 commit f5dbe42

File tree

14 files changed

+1722
-97
lines changed

14 files changed

+1722
-97
lines changed

reference/execution/execution/completion-domain.html

Lines changed: 6 additions & 6 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/completion-domain.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`の[完了Scheduler](get_completion_scheduler.md)から[実行ドメイン](default_domain.md)を取得する説明専用の関数テンプレート。" />
31+
<meta property="og:description" content="[Sender](sender.md)`sndr`の[完了Scheduler](get_completion_scheduler.md)から[実行ドメイン](default_domain.md)を取得する説明専用の関数テンプレート。" />
3232
<meta name="twitter:card" content="summary" />
3333
<meta name="twitter:title" content="completion-domain - cpprefjp C++日本語リファレンス" />
3434
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/execution/execution/completion-domain.html" />
35-
<meta name="twitter:description" content="[Sender型](sender.md)`sndr`の[完了Scheduler](get_completion_scheduler.md)から[実行ドメイン](default_domain.md)を取得する説明専用の関数テンプレート。" />
35+
<meta name="twitter:description" content="[Sender](sender.md)`sndr`の[完了Scheduler](get_completion_scheduler.md)から[実行ドメイン](default_domain.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-30T01:39:58">
204-
2025年04月30日 01時39分58秒
203+
<span itemprop="datePublished" content="2025-04-30T05:29:54">
204+
2025年04月30日 05時29分54秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -230,12 +230,12 @@
230230
</code></pre></div>
231231
</p>
232232
<h2>概要</h2>
233-
<p><a href="sender.html">Sender型</a><code>sndr</code><a href="get_completion_scheduler.html">完了Scheduler</a>から<a href="default_domain.html">実行ドメイン</a>を取得する説明専用の関数テンプレート。</p>
233+
<p><a href="sender.html">Sender</a><code>sndr</code><a href="get_completion_scheduler.html">完了Scheduler</a>から<a href="default_domain.html">実行ドメイン</a>を取得する説明専用の関数テンプレート。</p>
234234
<h2>効果</h2>
235235
<p>説明用の型<code>COMPL-DOMAIN(T)</code>を式<code><a href="get_domain.html">get_domain</a>(<a href="get_completion_scheduler.html">get_completion_scheduler</a>&lt;T&gt;(<a href="get_env.html">get_env</a>(sndr)))</code>の型とする。</p>
236236
<ul>
237237
<li><code>COMPL-DOMAIN(<a href="set_value.html">set_value_t</a>)</code><code>COMPL-DOMAIN(<a href="set_error.html">set_error_t</a>)</code><code>COMPL-DOMAIN(<a href="set_stopped.html">set_stopped_t</a>)</code>の全てが<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../implementation-compliance.html#dfn-ill-formed">不適格</a>の場合、<code>completion-domain&lt;Default&gt;</code><code>Default</code>型の<a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>されたprvalueとなる。</li>
238-
<li>そうではなく、上記のうち<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../implementation-compliance.html#dfn-ill-formed">不適格</a>となる型を除いた型が<a href="../../type_traits/common_type.html">共通型</a>を共有するならば、<code>completion-domain&lt;Default&gt;</code>はその共有型の<a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>されたprvalueとなる。</li>
238+
<li>そうではなく、上記のうち<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../implementation-compliance.html#dfn-ill-formed">不適格</a>となる型を除いた型が<a href="../../type_traits/common_type.html">共通型</a>を共有するならば、<code>completion-domain&lt;Default&gt;</code>はその共通型の<a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>されたprvalueとなる。</li>
239239
<li>そうでなければ、<code>completion-domain&lt;Default&gt;</code><a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../implementation-compliance.html#dfn-ill-formed">不適格</a>となる。</li>
240240
</ul>
241241
<h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a></h2>

reference/execution/execution/run_loop.html

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;execution&#34;], &#34;id-type&#34;: [&#34;class&#34;], &#34;namespace&#34;: [&#34;std::execution&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;7670866e83f1b970a7e6003cc30ae2d913b87f76&#34;, &#34;source&#34;: &#34;#include &lt;execution&gt;\nnamespace ex = std::execution;\n\nstruct MyReceiver {\n using receiver_concept = ex::receiver_t;\n\n void set_value() noexcept\n { std::println(\&#34;value\&#34;); }\n void set_error(std::exception_ptr) noexcept\n { std::println(\&#34;error\&#34;); }\n void set_stopped() noexcept\n { std::println(\&#34;stopped\&#34;); }\n};\n\n\nint main()\n{\n // run_loop\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30ebSender\u3092\u53d6\u5f97\n ex::run_loop loop;\n ex::scheduler auto sch = loop.get_scheduler();\n // state:\u958b\u59cb(starting)\n\n ex::sender auto sndr = ex::schedule(sch);\n ex::receiver auto rcvr = MyReceiver{};\n ex::operation_state auto op = ex::connect(sndr, rcvr);\n // \u30ad\u30e5\u30fc\u306b\u4f5c\u696d\u30921\u3064\u8ffd\u52a0\n ex::start(op);\n\n // state\u3092\u5b8c\u4e86\u4e2d(finished)\u3078\u9077\u79fb\n loop.finish();\n\n // \u30ad\u30e5\u30fc\u4e0a\u306e\u4f5c\u696d\u3092\u5168\u3066\u51e6\u7406\n loop.run();\n // state:\u5b8c\u4e86\u6e08\u307f(finished)\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;execution&#34;, &#34;execution&#34;, &#34;run_loop&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;execution&#34;], &#34;id-type&#34;: [&#34;class&#34;], &#34;namespace&#34;: [&#34;std::execution&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;b4143e51092cd5564b781db73454ee3c5ba13363&#34;, &#34;source&#34;: &#34;#include &lt;print&gt;\n#include &lt;execution&gt;\nnamespace ex = std::execution;\n\nstruct MyReceiver {\n using receiver_concept = ex::receiver_t;\n\n void set_value() noexcept\n { std::println(\&#34;success\&#34;); }\n void set_error(std::exception_ptr) noexcept\n { std::println(\&#34;failure\&#34;); }\n void set_stopped() noexcept\n { std::println(\&#34;cancellation\&#34;); }\n};\n\n\nint main()\n{\n ex::run_loop loop;\n // count=0, state=\u958b\u59cb(starting)\n\n // run_loop\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30ebSender\u3068Receiver\u3092\u63a5\u7d9a\n ex::scheduler auto sch = loop.get_scheduler();\n ex::sender auto sndr = ex::schedule(sch);\n ex::receiver auto rcvr = MyReceiver{};\n auto op = ex::connect(sndr, rcvr);\n\n // run_loop\u30ad\u30e5\u30fc\u306b\u4f5c\u696d\u30921\u3064\u8ffd\u52a0\n ex::start(op);\n // count=1, state=\u958b\u59cb(starting)\n\n // run_loop\u72b6\u614b\u3092\u7d42\u4e86\u4e2d(finished)\u3078\u5909\u66f4\n loop.finish();\n // count=1, state=\u7d42\u4e86\u4e2d(finished)\n\n // run_loop\u30ad\u30e5\u30fc\u4e0a\u306e\u4f5c\u696d\u3092\u9010\u6b21\u5b9f\u884c\n loop.run();\n // count=0, state=\u7d42\u4e86\u6e08\u307f(finished)\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;execution&#34;, &#34;execution&#34;, &#34;run_loop&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -200,8 +200,8 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-04-29T16:23:37">
204-
2025年04月29日 16時23分37秒
203+
<span itemprop="datePublished" content="2025-04-30T05:29:54">
204+
2025年04月30日 05時29分54秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -233,11 +233,11 @@
233233
<h2>概要</h2>
234234
<p><code>run_loop</code>は、実行制御ライブラリの作業を<a href="schedule.html">スケジュール</a>可能な実行リソース(execution resource)である。</p>
235235
<p>内部的にスレッドセーフなFIFO (first-in first-out) 作業キューを保持する。
236-
<span href="https://cpprefjp.github.io/reference/execution/execution/run_loop/run.md.nolink"><code>run</code>メンバ関数</span>はキューから作業を取り出し、同関数を呼び出したスレッド上のループで実行する。</p>
236+
<a href="run_loop/run.html"><code>run</code>メンバ関数</a>はキューから作業を取り出し、同関数を呼び出したスレッド上のループで実行する。</p>
237237
<p><code>run_loop</code>インスタンスの動作説明のため、下記の説明用メンバ変数を持つ。</p>
238238
<ul>
239-
<li><code>count</code> : FIFOキューが保持する作業の個数</li>
240-
<li><code>state</code> : 開始(starting)実行中(running)/完了中(finishing)/完了済み(finished) いずれかのインスタンス状態</li>
239+
<li><code>count</code> : キュー上に保持している作業の個数</li>
240+
<li><code>state</code> : <a href="run_loop/op_constructor.html">開始(starting)</a><a href="run_loop/run.html">実行中(running)</a><a href="run_loop/finish.html">終了中(finishing)</a><a href="run_loop/run.html">終了済み(finished)</a> いずれかの状態</li>
241241
</ul>
242242
<h2>メンバ関数</h2>
243243
<table border="1" bordercolor="#888" style="border-collapse:collapse">
@@ -265,13 +265,13 @@ <h2>メンバ関数</h2>
265265
<td>C++26</td>
266266
</tr>
267267
<tr>
268-
<td><code><span href="https://cpprefjp.github.io/reference/execution/execution/run_loop/run.md.nolink">run</span></code></td>
269-
<td>ループ実行を開始</td>
268+
<td><code><a href="run_loop/run.html">run</a></code></td>
269+
<td>キュー上の作業を逐次実行</td>
270270
<td>C++26</td>
271271
</tr>
272272
<tr>
273-
<td><code><span href="https://cpprefjp.github.io/reference/execution/execution/run_loop/finish.md.nolink">finish</span></code></td>
274-
<td>ループ実行を終了</td>
273+
<td><code><a href="run_loop/finish.html">finish</a></code></td>
274+
<td>状態を終了中に変更</td>
275275
<td>C++26</td>
276276
</tr>
277277
</tbody>
@@ -288,61 +288,70 @@ <h2>説明専用のメンバ型</h2>
288288
<tbody>
289289
<tr>
290290
<td><code><a href="run_loop/run-loop-scheduler.html">run-loop-scheduler</a></code></td>
291-
<td>説明専用クラス</td>
291+
<td>動作説明用の<a href="scheduler.html">Scheduler型</a></td>
292292
<td>C++26</td>
293293
</tr>
294294
<tr>
295295
<td><code><a href="run_loop/run-loop-sender.html">run-loop-sender</a></code></td>
296-
<td>説明専用クラス</td>
296+
<td>動作説明用の<a href="sender.html">Sender型</a></td>
297297
<td>C++26</td>
298298
</tr>
299299
<tr>
300-
<td><code><span href="https://cpprefjp.github.io/reference/execution/execution/run_loop/run-loop-opstate.md.nolink">run-loop-opstate</span></code></td>
301-
<td>説明専用クラス</td>
300+
<td><code><a href="run_loop/run-loop-opstate.html">run-loop-opstate-base</a></code></td>
301+
<td>動作説明用の基底クラス</td>
302+
<td>C++26</td>
303+
</tr>
304+
<tr>
305+
<td><code><a href="run_loop/run-loop-opstate.html">run-loop-opstate</a></code></td>
306+
<td>動作説明用のクラステンプレート</td>
302307
<td>C++26</td>
303308
</tr>
304309
</tbody>
305310
</table>
306311
<h2></h2>
307-
<p><div class="yata" id="7670866e83f1b970a7e6003cc30ae2d913b87f76"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../execution.html">&lt;execution&gt;</a></span><span class="cp"></span>
312+
<p><div class="yata" id="b4143e51092cd5564b781db73454ee3c5ba13363"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../print.html">&lt;print&gt;</a></span><span class="cp"></span>
313+
<span class="cp">#include</span> <span class="cpf"><a href="../../execution.html">&lt;execution&gt;</a></span><span class="cp"></span>
308314
<span class="k">namespace</span> <span class="n">ex</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">execution</span><span class="p">;</span>
309315

310316
<span class="k">struct</span> <span class="n">MyReceiver</span> <span class="p">{</span>
311317
<span class="k">using</span> <span class="n">receiver_concept</span> <span class="o">=</span> <span class="n"><a href="receiver.html">ex::receiver_t</a></span><span class="p">;</span>
312318

313319
<span class="kt">void</span> <span class="nf">set_value</span><span class="p">()</span> <span class="k">noexcept</span>
314-
<span class="p">{</span> <span class="n"><a href="../../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"value"</span><span class="p">);</span> <span class="p">}</span>
320+
<span class="p">{</span> <span class="n"><a href="../../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"success"</span><span class="p">);</span> <span class="p">}</span>
315321
<span class="kt">void</span> <span class="nf">set_error</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">exception_ptr</span><span class="p">)</span> <span class="k">noexcept</span>
316-
<span class="p">{</span> <span class="n"><a href="../../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"error"</span><span class="p">);</span> <span class="p">}</span>
322+
<span class="p">{</span> <span class="n"><a href="../../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"failure"</span><span class="p">);</span> <span class="p">}</span>
317323
<span class="kt">void</span> <span class="nf">set_stopped</span><span class="p">()</span> <span class="k">noexcept</span>
318-
<span class="p">{</span> <span class="n"><a href="../../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"stopped"</span><span class="p">);</span> <span class="p">}</span>
324+
<span class="p">{</span> <span class="n"><a href="../../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"cancellation"</span><span class="p">);</span> <span class="p">}</span>
319325
<span class="p">};</span>
320326

321327

322328
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
323329
<span class="p">{</span>
324-
<span class="c1">// run_loopのスケジュールSenderを取得</span>
325330
<span class="n"><span style="color:#ff0000">ex::run_loop</span></span> <span class="n">loop</span><span class="p">;</span>
326-
<span class="n"><a href="scheduler.html">ex::scheduler</a></span> <span class="k">auto</span> <span class="n">sch</span> <span class="o">=</span> <span class="n">loop</span><span class="p">.</span><span class="n"><a href="run_loop/get_scheduler.html">get_scheduler()</a></span><span class="p">;</span>
327-
<span class="c1">// state:開始(starting)</span>
331+
<span class="c1">// count=0, state=開始(starting)</span>
328332

333+
<span class="c1">// run_loopのスケジュールSenderとReceiverを接続</span>
334+
<span class="n"><a href="scheduler.html">ex::scheduler</a></span> <span class="k">auto</span> <span class="n">sch</span> <span class="o">=</span> <span class="n">loop</span><span class="p">.</span><span class="n"><a href="run_loop/get_scheduler.html">get_scheduler()</a></span><span class="p">;</span>
329335
<span class="n"><a href="sender.html">ex::sender</a></span> <span class="k">auto</span> <span class="n">sndr</span> <span class="o">=</span> <span class="n"><a href="schedule.html">ex::schedule</a></span><span class="p">(</span><span class="n">sch</span><span class="p">);</span>
330336
<span class="n"><a href="receiver.html">ex::receiver</a></span> <span class="k">auto</span> <span class="n">rcvr</span> <span class="o">=</span> <span class="n">MyReceiver</span><span class="p">{};</span>
331-
<span class="n"><a href="operation_state.html">ex::operation_state</a></span> <span class="k">auto</span> <span class="n">op</span> <span class="o">=</span> <span class="n"><a href="connect.html">ex::connect</a></span><span class="p">(</span><span class="n">sndr</span><span class="p">,</span> <span class="n">rcvr</span><span class="p">);</span>
332-
<span class="c1">// キューに作業を1つ追加</span>
337+
<span class="k">auto</span> <span class="n">op</span> <span class="o">=</span> <span class="n"><a href="connect.html">ex::connect</a></span><span class="p">(</span><span class="n">sndr</span><span class="p">,</span> <span class="n">rcvr</span><span class="p">);</span>
338+
339+
<span class="c1">// run_loopキューに作業を1つ追加</span>
333340
<span class="n"><a href="start.html">ex::start</a></span><span class="p">(</span><span class="n">op</span><span class="p">);</span>
341+
<span class="c1">// count=1, state=開始(starting)</span>
334342

335-
<span class="c1">// stateを完了中(finished)へ遷移</span>
336-
<span class="n">loop</span><span class="p">.</span><span class="n"><span href="https://cpprefjp.github.io/reference/execution/execution/run_loop/finish.md.nolink">finish()</span></span><span class="p">;</span>
343+
<span class="c1">// run_loop状態を終了中(finished)へ変更</span>
344+
<span class="n">loop</span><span class="p">.</span><span class="n"><a href="run_loop/finish.html">finish()</a></span><span class="p">;</span>
345+
<span class="c1">// count=1, state=終了中(finished)</span>
337346

338-
<span class="c1">// キュー上の作業を全て処理</span>
339-
<span class="n">loop</span><span class="p">.</span><span class="n"><span href="https://cpprefjp.github.io/reference/execution/execution/run_loop/run.md.nolink">run()</span></span><span class="p">;</span>
340-
<span class="c1">// state:完了済み(finished)</span>
347+
<span class="c1">// run_loopキュー上の作業を逐次実行</span>
348+
<span class="n">loop</span><span class="p">.</span><span class="n"><a href="run_loop/run.html">run()</a></span><span class="p">;</span>
349+
<span class="c1">// count=0, state=終了済み(finished)</span>
341350
<span class="p">}</span>
342351
</code></pre></div>
343352
</div></p>
344353
<h3>出力</h3>
345-
<p><pre><code>value
354+
<p><pre><code>success
346355
</code></pre></p>
347356
<h2>バージョン</h2>
348357
<h3>言語</h3>
@@ -358,7 +367,7 @@ <h3>処理系</h3>
358367
</ul>
359368
<h2>関連項目</h2>
360369
<ul>
361-
<li><code><a href="schedule.html">execution::schedule</a></code></li>
370+
<li><code><a href="scheduler.html">execution::scheduler</a></code></li>
362371
</ul>
363372
<h2>参照</h2>
364373
<ul>

0 commit comments

Comments
 (0)