conditionally contribute set_error_t(std::exception_ptr) in repeat_* senders#1799
conditionally contribute set_error_t(std::exception_ptr) in repeat_* senders#1799justend29 wants to merge 15 commits intoNVIDIA:mainfrom
set_error_t(std::exception_ptr) in repeat_* senders#1799Conversation
Co-authored-by: Eric Niebler <eniebler@boost.org>
|
Thank you for the review, @ericniebler. All of your comments have been addressed, though |
|
/ok to test ac8352c |
|
/ok to test 99cf087 |
|
@ericniebler It's odd that the CI jobs using an older version of GCC fail while the other CI jobs pass. I tested everything with GCC15.2.1 locally. I'm not sure if you have any ideas, but I can probably install an older version of GCC and try to reproduce the failing build locally over the weekend. |
that's business as usual. getting CI to pass with older, less-conforming compilers is often the majority of the work for PRs. i wish things were different. |
Currently, the
repeat_family of sender adapters invariantly contributesset_error_t(std::exception_ptr)to its completion signatures, which I first mentioned in this issue. This PR causesrepeat_until,repeat, andrepeat_nto conditionally contributeset_error_t(std::exception_ptr)to the completion signatures. Each of the possible cases (not) to contribute the completion signature are individually tested.It also contains some small corrections that were originally in #1797, until @RobertLeahy informed me that it is possible to detect the
noexcept-ness of aconnectusingSTDEXEC::__receiver_archetype<Env>, wherein I returned to this original goal.This is also my first time working with the meta-programming system in this library, so feedback is welcome.