Skip to content

[2025-06 LWG Motion 34] P3552R3 Add a Coroutine Task #8032

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

dietmarkuehl
Copy link

@dietmarkuehl dietmarkuehl commented Jun 29, 2025

I have applied the changes for P3552r3 (Add a Coroutine Task Type). Compared to the actual text of P3552r3
I made some [I think editorial] changes:

  • added with_error and change_coroutine_scheduler declarations to the synopsis before task; they are in the detailed description but not in the synopsis (possibly they should only be in the synopsis) as there is no further description)
  • inconsistent default template arguments for the ctor in the class declaration (allocator and the later description (allocator); the wording consistently uses allocator
  • added "of the" to a sentence about the type of a completion datum: "... defines the type of the value completion datum"
  • the use of the template parameter of the nested type state is Rcvr which has two problems: 1. the ctor also uses the name Rcvr for its template parameter 2. the class stores an object of type R which is the receiver named rcvr the most logic fix is to use Rcvr consistently for the state and change the name for the ctor's parameter:
    1. change the ctor template parameter type to use R
    2. change the member to use Rcvr
    3. change the type R used for the own-env-t to be "...get_env(declval())..."

Fixes #7971
Fixes cplusplus/papers#2200

I have applied some [I think editorial] changes compared to P3552r3:

- added with_error and change_coroutine_scheduler declarations to
    the synopsis before task; they are in the detailed description but
    not in the synopsis (possibly they should only be in the synopsis)
    as there is no further description)
- inconsistent default template arguments for the ctor
    in the class declaration (allocator<byte> and the later description
    (allocator<void>); the wording consistently uses allocator<void>
- added "of the" to a sentence about the type of a completion datum:
    "... defines the type *of the* value completion datum"
- the use of the template parameter of the nested type state is Rcvr
    which has two problems:
       1. the ctor also uses the name Rcvr for its template parameter
       2. the class stores an object of type R which is the receiver
          named rcvr
  the most logic fix is to use Rcvr consistently for the state and
  change the name for the ctor's parameter:
    1. change the ctor template parameter type to use R
    2. change the member to use Rcvr
    3. change the type R used for the own-env-t to be
       "...get_env(declval<Rcvr>())..."
The CI objected to use of \exposid{sender} => renamed sender to
ts-sender. This change should be editorial but is more invovled
@jensmaurer jensmaurer changed the title FIXES: 7971 [2025-06 LWG Motion 34] P3552R3 Add a Coroutine Task [2025-06 LWG Motion 34] P3552R3 Add a Coroutine Task Jun 30, 2025
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.

[2025-06 LWG Motion 34] P3552R3 Add a Coroutine Task Type P3552 R2 Add a Coroutine Task Type
1 participant