Skip to content

Commit 9fe9e56

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 51142af commit 9fe9e56

File tree

3 files changed

+90
-36
lines changed

3 files changed

+90
-36
lines changed

reference/execution/execution/sender.html

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

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-07-08T15:33:39">
204-
2025年07月08日 15時33分39秒
203+
<span itemprop="datePublished" content="2025-07-31T12:34:14">
204+
2025年07月31日 12時34分14秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
208-
<span itemprop="name">Akira Takahashi</span>
208+
<span itemprop="name">yoh</span>
209209
</span>
210210
が更新
211211
</small></p>
@@ -230,6 +230,9 @@
230230
<span class="n">concept</span> <span class="n">sender</span><span class="p">;</span>
231231

232232
<span class="k">struct</span> <span class="n">sender_t</span> <span class="p">{};</span> <span class="c1">// タグ型</span>
233+
234+
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">Sndr</span><span class="o">&gt;</span>
235+
<span class="kr">inline</span> <span class="k">constexpr</span> <span class="kt">bool</span> <span class="n">enable_sender</span> <span class="o">=</span> <span class="n"><i>see below</i></span><span class="p">;</span>
233236
<span class="p">}</span>
234237
</code></pre></div>
235238
</p>
@@ -239,6 +242,7 @@ <h2>概要</h2>
239242
<ul>
240243
<li>下記いずれかを満たす<ul>
241244
<li><code>sender_t</code>をメンバ型<code>Sndr::sender_concept</code>として定義する</li>
245+
<li><code>enable_sender</code>変数テンプレートを<code>true</code>で特殊化する</li>
242246
<li><a href="../../../lang/cpp20/coroutines.html">コルーチンのAwaitable型</a></li>
243247
</ul>
244248
</li>
@@ -257,10 +261,15 @@ <h2>要件</h2>
257261
<span class="n"><a href="../is-awaitable.html">is-awaitable</a></span><span class="o">&lt;</span><span class="n">Sndr</span><span class="p">,</span> <span class="n"><a href="env-promise.html">env-promise</a></span><span class="o">&lt;</span><span class="n"><a href="env.html">env&lt;&gt;</a></span><span class="o">&gt;&gt;</span><span class="p">;</span>
258262
</code></pre></div>
259263
</p>
264+
<p><code>enable_sender</code>変数テンプレートを以下のように定義する。</p>
265+
<p><div class="codehilite"><pre><span></span><code><span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">Sndr</span><span class="o">&gt;</span>
266+
<span class="kr">inline</span> <span class="k">constexpr</span> <span class="kt">bool</span> <span class="n">enable_sender</span> <span class="o">=</span> <span class="n">enable</span><span class="o">-</span><span class="n">sender</span><span class="o">&lt;</span><span class="n">Sndr</span><span class="o">&gt;</span><span class="p">;</span>
267+
</code></pre></div>
268+
</p>
260269
<p><code>sender</code>コンセプトは、以下のように定義される。</p>
261270
<p><div class="codehilite"><pre><span></span><code><span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">Sndr</span><span class="o">&gt;</span>
262271
<span class="n">concept</span> <span class="n">sender</span> <span class="o">=</span>
263-
<span class="kt">bool</span><span class="p">(</span><span class="n">enable</span><span class="o">-</span><span class="n">sender</span><span class="o">&lt;</span><span class="n"><a href="../../type_traits/remove_cvref.html">remove_cvref_t</a></span><span class="o">&lt;</span><span class="n">Sndr</span><span class="o">&gt;&gt;</span><span class="p">)</span> <span class="o">&amp;&amp;</span>
272+
<span class="n">enable_sender</span><span class="o">&lt;</span><span class="n"><a href="../../type_traits/remove_cvref.html">remove_cvref_t</a></span><span class="o">&lt;</span><span class="n">Sndr</span><span class="o">&gt;&gt;</span><span class="p">)</span> <span class="o">&amp;&amp;</span>
264273
<span class="n">requires</span> <span class="p">(</span><span class="k">const</span> <span class="n"><a href="../../type_traits/remove_cvref.html">remove_cvref_t</a></span><span class="o">&lt;</span><span class="n">Sndr</span><span class="o">&gt;&amp;</span> <span class="n">sndr</span><span class="p">)</span> <span class="p">{</span>
265274
<span class="p">{</span> <span class="n"><a href="get_env.html">get_env</a></span><span class="p">(</span><span class="n">sndr</span><span class="p">)</span> <span class="p">}</span> <span class="o">-&gt;</span> <span class="n"><a href="../queryable.html">queryable</a></span><span class="p">;</span>
266275
<span class="p">}</span> <span class="o">&amp;&amp;</span>
@@ -269,8 +278,7 @@ <h2>要件</h2>
269278
</code></pre></div>
270279
</p>
271280
<h2>備考</h2>
272-
<p><code>sender</code>コンセプトの制約式に現れる第1項<code>bool(enable-sender&lt;...&gt;)</code><a href="../../../lang/cpp20/concepts.html">原子制約(atomic constraint)</a>を構成する。
273-
これにより<a class="cpprefjp-defined-word" data-desc="関数呼び出し時に、同名の関数の中から実際に呼び出す関数を決定する処理。このときの候補になることを、オーバーロード解決に参加するという">オーバーロード解決</a>時の優先順比較において<code>enable-sender</code>コンセプトの<code>||</code>を単純なOR条件とみなせ、コンパイル時の複雑な包摂関係計算コストを抑制できる。</p>
281+
<p><a class="cpprefjp-defined-word" data-desc="標準ライブラリの型を除く、ユーザー(プログラマ)によって定義された型のこと">プログラム定義型</a><code>sender</code>コンセプトを満たす場合、ユーザは<code>enable_sender</code>変数テンプレートを<code>true</code>として特殊化してもよい。そのような特殊化は定数式で利用可能かつ<code>const bool</code>型をもつこと。</p>
274282
<h2></h2>
275283
<p><div class="yata" id="9fb3672febf2b77ff6503fb5eca8be069ea578ff"><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>
276284
<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>
@@ -305,6 +313,7 @@ <h2>関連項目</h2>
305313
<h2>参照</h2>
306314
<ul>
307315
<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>
316+
<li><a href="https://cplusplus.github.io/LWG/issue4202" target="_blank">LWG 4202. enable-sender should be a variable template</a></li>
308317
</ul></div>
309318

310319
</div>

rss.xml

Lines changed: 74 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,82 @@
22
<feed xmlns="http://www.w3.org/2005/Atom">
33
<title>cpprefjp - C++日本語リファレンス</title>
44
<link href="https://cpprefjp.github.io" />
5-
<updated>2025-07-31T04:49:01.330338</updated>
6-
<id>059b3f39-c28e-4c29-b70a-15b63b9c4dd0</id>
5+
<updated>2025-07-31T12:38:25.895896</updated>
6+
<id>2a9e2659-a97b-43c1-a60f-9491471f039d</id>
77

88

9+
<entry>
10+
<title>sender -- execution/sender: LWG4202</title>
11+
<link href="https://cpprefjp.github.io/reference/execution/execution/sender.html"/>
12+
<id>2798af6fb2cc9cfc931e58dfde42b797ae94259b:reference/execution/execution/sender.md</id>
13+
<updated>2025-07-31T21:34:14+09:00</updated>
14+
15+
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/execution/execution/sender.md b/reference/execution/execution/sender.md
16+
index 216fea494..12b11c6be 100644
17+
--- a/reference/execution/execution/sender.md
18+
+++ b/reference/execution/execution/sender.md
19+
@@ -10,6 +10,9 @@ namespace std::execution {
20+
concept sender;
21+
22+
struct sender_t {}; // タグ型
23+
+
24+
+ template&amp;lt;class Sndr&amp;gt;
25+
+ inline constexpr bool enable_sender = see below;
26+
}
27+
```
28+
29+
@@ -20,6 +23,7 @@ namespace std::execution {
30+
31+
- 下記いずれかを満たす
32+
- `sender_t`をメンバ型`Sndr::sender_concept`として定義する
33+
+ - `enable_sender`変数テンプレートを`true`で特殊化する
34+
- [コルーチンのAwaitable型](/lang/cpp20/coroutines.md)
35+
- [`get_env`](get_env.md)で[属性](../queryable.md)を取得できる
36+
- ムーブ可能
37+
@@ -43,12 +47,19 @@ concept enable-sender =
38+
* env-promise[link env-promise.md]
39+
* env&amp;lt;&amp;gt;[link env.md]
40+
41+
+`enable_sender`変数テンプレートを以下のように定義する。
42+
+
43+
+```cpp
44+
+template&amp;lt;class Sndr&amp;gt;
45+
+inline constexpr bool enable_sender = enable-sender&amp;lt;Sndr&amp;gt;;
46+
+```
47+
+
48+
`sender`コンセプトは、以下のように定義される。
49+
50+
```cpp
51+
template&amp;lt;class Sndr&amp;gt;
52+
concept sender =
53+
- bool(enable-sender&amp;lt;remove_cvref_t&amp;lt;Sndr&amp;gt;&amp;gt;) &amp;amp;&amp;amp;
54+
+ enable_sender&amp;lt;remove_cvref_t&amp;lt;Sndr&amp;gt;&amp;gt;) &amp;amp;&amp;amp;
55+
requires (const remove_cvref_t&amp;lt;Sndr&amp;gt;&amp;amp; sndr) {
56+
{ get_env(sndr) } -&amp;gt; queryable;
57+
} &amp;amp;&amp;amp;
58+
@@ -61,8 +72,7 @@ concept sender =
59+
60+
61+
## 備考
62+
-`sender`コンセプトの制約式に現れる第1項`bool(enable-sender&amp;lt;...&amp;gt;)`は[原子制約(atomic constraint)](/lang/cpp20/concepts.md)を構成する。
63+
-これによりオーバーロード解決時の優先順比較において`enable-sender`コンセプトの`||`を単純なOR条件とみなせ、コンパイル時の複雑な包摂関係計算コストを抑制できる。
64+
+プログラム定義型が`sender`コンセプトを満たす場合、ユーザは`enable_sender`変数テンプレートを`true`として特殊化してもよい。そのような特殊化は定数式で利用可能かつ`const bool`型をもつこと。
65+
66+
67+
## 例
68+
@@ -103,3 +113,4 @@ int main()
69+
70+
## 参照
71+
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
72+
+- [LWG 4202. enable-sender should be a variable template](https://cplusplus.github.io/LWG/issue4202)
73+
&lt;/code&gt;&lt;/pre&gt;</summary>
74+
75+
<author>
76+
<name>yoh</name>
77+
<email>[email protected]</email>
78+
</author>
79+
</entry>
80+
981
<entry>
1082
<title>C++20 -- Merge pull request #1479 from cpprefjp/lwg3659</title>
1183
<link href="https://cpprefjp.github.io/lang/cpp20.html"/>
@@ -2577,31 +2649,4 @@ index 94db339aa..04d97c796 100644
25772649
</author>
25782650
</entry>
25792651

2580-
<entry>
2581-
<title>BUFSIZ -- added info for bufsiz.md</title>
2582-
<link href="https://cpprefjp.github.io/reference/cstdio/bufsiz.html"/>
2583-
<id>24dc1089c1641f9fe2912a0f1478b68eb2d60cca:reference/cstdio/bufsiz.md</id>
2584-
<updated>2025-07-24T21:29:45+09:00</updated>
2585-
2586-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/cstdio/bufsiz.md b/reference/cstdio/bufsiz.md
2587-
index 8f1ff4180..c8af3427c 100644
2588-
--- a/reference/cstdio/bufsiz.md
2589-
+++ b/reference/cstdio/bufsiz.md
2590-
@@ -10,7 +10,7 @@
2591-
## 概要
2592-
[`setbuf()`](/reference/cstdio/setbuf.md.nolink)関数で使われる標準入出力のバッファサイズを表すマクロ。
2593-
2594-
-このマクロは、標準入出力関数で使用されるデフォルトのバッファサイズを定義する。値は実装依存であるが、一般的には512バイトや1024バイトなどの値が使用される。
2595-
+このマクロは、標準入出力関数で使用されるデフォルトのバッファサイズを定義する。値は実装依存であり、256バイト以上であることは保証されているが、一般的には512バイトや1024バイトなどの値が使用される。
2596-
2597-
## 例
2598-
```cpp example
2599-
&lt;/code&gt;&lt;/pre&gt;</summary>
2600-
2601-
<author>
2602-
<name>rotarymars</name>
2603-
<email>[email protected]</email>
2604-
</author>
2605-
</entry>
2606-
26072652
</feed>

sitemap.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14108,7 +14108,7 @@
1410814108

1410914109
<url>
1411014110
<loc>https://cpprefjp.github.io/reference/execution/execution/sender.html</loc>
14111-
<lastmod>2025-07-22T23:37:52+09:00</lastmod>
14111+
<lastmod>2025-07-31T21:34:14+09:00</lastmod>
1411214112
<changefreq>daily</changefreq>
1411314113
<priority>0.6</priority>
1411414114
</url>

0 commit comments

Comments
 (0)