Open
Description
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
(Makeset_error
use member function instead oftag_invoke
#1369) -
set_stopped_t
-
start_t
(Change operation statestart
CPO to use member functions #1392) -
connect_t
(Change senderconnect
CPO to use member functions #1393) -
schedule_t
-
get_env_t
(Changeget_env
CPO to use member functions #1394)
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 to transform_sender(thread_pool_scheduler_domain, bulk_sender)
. We don't have domains implemented for schedulers yet, so we'd need that before tackling this.
Metadata
Metadata
Assignees
Type
Projects
Status
Todo