Skip to content

Convert std::execution functionality to use member functions instead of tag_invoke #1204

Open
@msimberg

Description

@msimberg

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:

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

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions