Skip to content

execution: P3826R5対応#1655

Open
yohhoy wants to merge 2 commits into
masterfrom
cpp26-p3826r5
Open

execution: P3826R5対応#1655
yohhoy wants to merge 2 commits into
masterfrom
cpp26-p3826r5

Conversation

@yohhoy
Copy link
Copy Markdown
Member

@yohhoy yohhoy commented May 19, 2026

P3826R5 Fix Sender Algorithm Customization, 5.7 The procedure for the fix:

  • Remove the uses of transform_sender in the sender adaptor algorithm customization points. Directly return the result of calling make-sender rather than passing it to transform_sender.
  • Remove the exposition-only helpers: completion-domain, get-domain-early, get-domain-late
  • Add the get_completion_domain queries: get_completion_domain
  • Change the get_completion_scheduler queries to accept an optional environment argument.
  • Make the get_domain(env) query smarter by falling back to the current scheduler’s domain if env.query(get_domain) is ill-formed, and falling back further to default_domain() if env does not have a current scheduler.
  • Restore the ability of env<...>::query to accept additional arguments.
  • Rename the current schedule_from algorithm to continues_on and change it to return make-sender(continues_on, sch, schedule_from(sndr)), where schedule_from is a new algorithm such that schedule_from(sndr) is equivalent to make-sender(schedule_from, {}, sndr).
  • Remove the (unused) transform_env function and the transform_env members of the sender algorithm CPOs and from default_domain.
  • Change transform_sender from transform_sender(Domain, Sndr, Env...) to transform_sender(Sndr, Env). Have it compute the sender’s starting and completing domains and apply their transforms to Sndr as shown in Appendix A.
  • Update the usages of transform_sender in connect and get_completion_signatures to reflect its new signature.
  • For the transform_sender member functions in the sender algorithm CPOs, add set_value_t, in the front of their parameter list. Parameterize the transform_sender member in default_domain with a leading Tag parameter.
  • Add a class template indeterminate_domain<Domains...> as described in Indeterminate domains.
  • Update the attributes of the sender algorithms to properly report their completion schedulers and completion domains given an optional env argument. Also update the inline_scheduler and its schedule-sender to compute their completion scheduler and domain from the extra env argument.
  • From the scheduler concept, replace the required expression [...] with a semantic requirement that if the above expression is well-formed – which it is for the parallel_scheduler, the task_scheduler, and run_loop’s scheduler – then it shall compare equal to sch.
  • For any scheduler sch and completion tag Tag, require that the expression get_completion_scheduler(sch, env...), if it is well-formed, has the same type and value as get_completion_scheduler(get_env(schedule(sch)), env...). Do likewise for the get_completion_domain queries.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 19, 2026

プレビュー (HTML) (更新時刻: 2026-05-19 20:28:18 JST)

  • Commit: 788cb2f
  • プレビューの生成には時間がかかります (3~5分)。進捗状況はこちらをご確認ください。

変更記事一覧

39件の記事が変更されました。

(ファイル一覧)

※ソース (.md) に直接変更のあった記事を列挙しています。グローバル修飾や変換規則の変更による変化は考慮していません。

yohhoy added 2 commits May 19, 2026 20:22
- 追加: get_completion_domain CPO
- 削除: transform_env関数
- transform_sender関数 仕様変更
- schedulerコンセプト 仕様変更
- ほか関連変更
- get_completion_scheduler 修正
- connect 修正
- 各Senderアルゴリズム 修正
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant