Skip to content

Commit 222e1a3

Browse files
committed
execution/let_value: LWG4204, LWG4205
1 parent 2798af6 commit 222e1a3

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

reference/execution/execution/let_value.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ namespace std::execution {
9595
- 説明用の型`Tag`とパック`Args`に対して、説明用のエイリアステンプレート`as-sndr2<Tag(Args...)>`を[`call-result-t`](/reference/functional/call-result-t.md)`<Fn,` [`decay_t`](/reference/type_traits/decay.md)`<Args>&...>`と定義する。型`ops2_variant_t`は下記定義において重複削除した型となる。
9696

9797
```cpp
98-
variant<monostate, connect_result_t<as-sndr2<LetSigs>, receiver2<Rcvr, Env>>...>
98+
variant<monostate, connect_result_t<as-sndr2<LetSigs>, receiver2<Rcvr, env_t>>...>
9999
```
100100
* variant[link /reference/variant/variant.md]
101101
* monostate[link /reference/variant/monostate.md]
@@ -125,7 +125,14 @@ namespace std::execution {
125125
126126
説明用の式`sndr`と`env`に対して、型`Sndr`を`decltype((sndr))`とする。[`sender-for`](sender-for.md)`<Sndr,` [`decayed-typeof`](/reference/functional/decayed-typeof.md)`<let-cpo>> == false`のとき、式`let-cpo.transform_env(sndr, env)`は不適格となる。
127127
128-
そうでなければ、式`let-cpo.transform_env(sndr, env)`は[`JOIN-ENV`](../queryable.md)`(let-env(sndr),` [`FWD-ENV`](../forwarding_query.md)`(env))`と等価。
128+
そうでなければ、式`let-cpo.transform_env(sndr, env)`は下記と等価。
129+
130+
```cpp
131+
auto& [_, _, child] = sndr;
132+
return JOIN-ENV(let-env(child), FWD-ENV(env));
133+
```
134+
* JOIN-ENV[link ../queryable.md]
135+
* FWD-ENV[link ../forwarding_query.md]
129136

130137

131138
## 説明専用エンティティ
@@ -400,3 +407,5 @@ catch 0
400407
- [P2999R3 Sender Algorithm Customization](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2999r3.html)
401408
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
402409
- [P3396R1 std::execution wording fixes](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3396r1.html)
410+
- [LWG 4204. specification of `as-sndr2(Sig)` in [exec.let] is incomplete](https://cplusplus.github.io/LWG/issue4204)
411+
- [LWG 4205. `let_[*].transform_env` is specified in terms of the `let_*` sender itself instead of its child](https://cplusplus.github.io/LWG/issue4205)

0 commit comments

Comments
 (0)