-
Notifications
You must be signed in to change notification settings - Fork 0
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
Added the receiver CPOs (set_value, set_error, set_stopped) #6
base: main
Are you sure you want to change the base?
Conversation
dietmarkuehl
commented
Feb 6, 2022
- fixed the year of the copyright of some of the files
- added missing std:: qualification to a tag_invoke in operation_state
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
The one thing I am missing is converting calls to set_value
, which should also be possible and tested
One obvious caveat that I forgot is that we should check that the arguments are |
I’ll add tests checking for conversions later today. With respect to the receiver concept: although currently it doesn’t (which I assume is a mistake) the |
namespace _Set_stopped { | ||
class _Cpo { | ||
public: | ||
template <class _Receiver> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we do not go with receiver
should we then constraint with movable-value
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe - that would need to go into the specification, though. The current specification just says "for some subexpression R
" without adding any requirements on R
. I believe the implementation allowing (and testing) the different lvalue overloads is as specified. An implementation not passing these tests does not match the specification.