execution: P3826R5対応#1655
Open
yohhoy wants to merge 1 commit into
Open
Conversation
Contributor
- 追加: get_completion_domain CPO - 削除: transform_env関数 - transform_sender関数 仕様変更 - schedulerコンセプト 仕様変更 - get_completion_scheduler 仕様変更 - connect 仕様変更 - 各Senderアルゴリズム 仕様変更 - 関連する変更
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
P3826R5 Fix Sender Algorithm Customization, 5.7 The procedure for the fix:
transform_senderin the sender adaptor algorithm customization points. Directly return the result of callingmake-senderrather than passing it totransform_sender.completion-domain,get-domain-early,get-domain-lateget_completion_domainqueriesget_completion_schedulerqueries to accept an optional environment argument.get_domain(env)query smarter by falling back to the current scheduler’s domain ifenv.query(get_domain)is ill-formed, and falling back further todefault_domain()ifenvdoes not have a current scheduler.env<...>::queryto accept additional arguments.schedule_fromalgorithm tocontinues_onand change it to returnmake-sender(continues_on, sch, schedule_from(sndr)), whereschedule_fromis a new algorithm such thatschedule_from(sndr)is equivalent tomake-sender(schedule_from, {}, sndr).transform_envfunction and thetransform_envmembers of the sender algorithm CPOs and fromdefault_domain.transform_senderfromtransform_sender(Domain, Sndr, Env...)totransform_sender(Sndr, Env). Have it compute the sender’s starting and completing domains and apply their transforms toSndras shown in Appendix A.transform_senderinconnectandget_completion_signaturesto reflect its new signature.transform_sendermember functions in the sender algorithm CPOs, addset_value_t, in the front of their parameter list. Parameterize thetransform_sendermember indefault_domainwith a leadingTagparameter.indeterminate_domain<Domains...>as described in Indeterminate domains.envargument. Also update theinline_schedulerand its schedule-sender to compute their completion scheduler and domain from the extra env argument.schedulerconcept, replace the required expression [...] with a semantic requirement that if the above expression is well-formed [...] then it shall compare equal tosch.schand completion tagTag, require that the expressionget_completion_scheduler<Tag>(sch, env...), if it is well-formed, has the same type and value asget_completion_scheduler<Tag>(get_env(schedule(sch)), env...). Do likewise for theget_completion_domainqueries.