Convert std::execution
functionality to use member functions instead of tag_invoke
#1204
Labels
category: senders/receivers
P2300
effort: 3
A few days of work.
effort: 4
A few weeks of work.
priority: medium
This should be done sooner or later.
type: cleanup
type: refactoring
Later versions of stdexec support both
tag_invoke
and member functions, but the standard will use member functions only. We should try to migrate to use member functions only where it makes sense with reasonable backwards compatibility to the old C++17 implementation in pika.The following CPOs and customizations can be translated quite simply:
set_value_t
(Changeset_value
CPO to use member functions instead oftag_invoke
#1295)set_error_t
set_stopped_t
start_t
connect_t
schedule_t
Sender adaptor customization we currently still do with
tag_invoke
, but this is not an as straightforward translation. E.g.tag_invoke(bulk_t, thread_pool_scheduler, ...)
would need to be translated totransform_sender(thread_pool_scheduler_domain, bulk_sender)
. We don't have domains implemented for schedulers yet, so we'd need that before tackling this.The text was updated successfully, but these errors were encountered: