Skip to content

Commit 5d1f2ce

Browse files
committed
execution/bulk(_(un)chunked): 調整 (#1508)
1 parent a34f426 commit 5d1f2ce

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

reference/execution/execution/bulk.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ transform_sender(
4141
`product-type`の第1テンプレート引数は、`Policy`[`copy_constructible`](/reference/concepts/copy_constructible.md)のモデルであるとき`Policy`となる。そうでなければ、`const Policy&`となる。
4242

4343

44-
### Senderアルゴリズムタグ `bulk_t`
44+
### Senderアルゴリズムタグ `bulk`
4545
説明用の式`sndr``env`に対して、型`Sndr``decltype((sndr))`とする。[`sender-for`](sender-for.md)`<Sndr, bulk_t> == false`のとき、式`bulk.transform_sender(sndr, env)`は不適格となる。
4646

4747
そうでなければ、式`bulk.transform_sender(sndr, env)`は下記と等価。
@@ -60,9 +60,12 @@ return bulk_chunked(std::move(child), policy, shape, std::move(new_f));
6060
6161
6262
## カスタマイゼーションポイント
63-
Senderアルゴリズム構築時および[Receiver](receiver.md)接続時に、関連付けられた実行ドメインに対して[`execution::transform_sender`](transform_sender.md)経由でSender変換が行われる。
63+
Senderアルゴリズム構築時に、[Sender](sender.md)`sndr`に[関連付けられた実行ドメイン](get-domain-early.md)に対して[`execution::transform_sender`](transform_sender.md)経由でSender変換が行われる。
6464
[デフォルト実行ドメイン](default_domain.md)では無変換。
6565
66+
[Receiver](receiver.md)との[接続(connect)](connect.md)時に、[関連付けられた実行ドメイン](get-domain-late.md)に対して[`execution::transform_sender`](transform_sender.md)経由でSender変換が行われる。
67+
[デフォルト実行ドメイン](default_domain.md)では`bulk.transform_sender(out_sndr, env)`が呼ばれ、[`bulk_chunked`](bulk_chunked.md)Senderへと変換される。
68+
6669
説明用の式`out_sndr`を`bulk(sndr, policy, shape, f)`の戻り値[Sender](sender.md)とし、式`rcvr`を式[`connect`](connect.md)`(out_sndr, rcvr)`が適格となる[Receiver](receiver.md)とする。式[`connect`](connect.md)`(out_sndr, rcvr)`は[開始(start)](start.md)時に下記を満たす非同期操作を生成しない場合、動作は未定義となる。
6770
6871
- 説明用の`args`を`sndr`の値完了結果を参照する左辺値式のパック、または[`copy_constructible`](/reference/concepts/copy_constructible.md)のモデルであるならばそれらの値のdecayコピーのパックとする。`sndr`が値完了したとき、
@@ -130,4 +133,3 @@ int main()
130133
- [P2999R3 Sender Algorithm Customization](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2999r3.html)
131134
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
132135
- [P3481R5 `std::execution::bulk()` issues](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3481r5.html)
133-
- [P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3557r3.html)

reference/execution/execution/bulk_chunked.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ transform_sender(
4141
`product-type`の第1テンプレート引数は、`Policy`[`copy_constructible`](/reference/concepts/copy_constructible.md)のモデルであるとき`Policy`となる。そうでなければ、`const Policy&`となる。
4242

4343

44-
### Senderアルゴリズムタグ `bulk_chunked_t`
44+
### Senderアルゴリズムタグ `bulk_chunked`
4545
Senderアルゴリズム動作説明用のクラステンプレート[`impls-for`](impls-for.md)に対して、下記の特殊化が定義される。
4646

4747
```cpp
@@ -171,4 +171,7 @@ int main()
171171

172172

173173
## 参照
174+
- [P2999R3 Sender Algorithm Customization](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2999r3.html)
175+
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
174176
- [P3481R5 `std::execution::bulk()` issues](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3481r5.html)
177+
- [P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3557r3.html)

reference/execution/execution/bulk_unchunked.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ transform_sender(
4141
`product-type`の第1テンプレート引数は、`Policy`[`copy_constructible`](/reference/concepts/copy_constructible.md)のモデルであるとき`Policy`となる。そうでなければ、`const Policy&`となる。
4242

4343

44-
### Senderアルゴリズムタグ `bulk_unchunked_t`
44+
### Senderアルゴリズムタグ `bulk_unchunked`
4545
Senderアルゴリズム動作説明用のクラステンプレート[`impls-for`](impls-for.md)に対して、下記の特殊化が定義される。
4646

4747
```cpp
@@ -90,6 +90,7 @@ Senderアルゴリズム構築時および[Receiver](receiver.md)接続時に、
9090

9191
- 説明用の`args`を`sndr`の値完了結果を参照する左辺値式のパック、または[`copy_constructible`](/reference/concepts/copy_constructible.md)のモデルであるならばそれらの値のdecayコピーのパックとする。`sndr`が値完了したとき、
9292
- `out_sndr`もまた値完了するとき、`0`から`shape`までの型`Shape`の全ての`i`に対して`f(i, args...)`を呼び出す。
93+
- スケジューラ実装者は、各イテレーションを独立した実行エージェント上で実行することが推奨される。
9394
- `out_sndr`が[`set_error`](set_error.md)`(rcvr, eptr)`で完了するとき、エラー完了ハンドラが呼び出される前に非同期操作は`f`呼び出しのサブセットを呼び出す可能性があり、`eptr`は下記いずれかを指す[`exception_ptr`](/reference/exception/exception_ptr.md)となる。
9495
- `f`呼び出しから送出された例外、または
9596
- 処理系が要求リソースの確保に失敗したときは[`bad_alloc`](/reference/new/bad_alloc.md)例外、または
@@ -146,4 +147,6 @@ int main()
146147
147148
148149
## 参照
150+
- [P2999R3 Sender Algorithm Customization](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2999r3.html)
151+
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
149152
- [P3481R5 `std::execution::bulk()` issues](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3481r5.html)

0 commit comments

Comments
 (0)