refactor(example): port awaitable-sender to stdexec, reject lossy com… - #375
Conversation
…pound results stdexec dispatches the C++26 static-template signature query, so the pre-P3164 instance-form overloads and the aggregate scaffolding that accommodated beman's brace-init decomposition probe go away; private data members remain the durable decomposition opt-out. Sender completion channels are exclusive, so a compound io_result (error_code plus payload) cannot complete without silently dropping the payload on set_error/set_stopped - a partial read's byte count would vanish. Restore the original compile-time rejection, covering both as_sender and the awaitable_sender_base CRTP path, and delete the runtime split. Payload delivery is pinned by tests on both sanctioned routes: a task<error_code> wrapper that moves the count out through a side channel, and counted_read_op, a base-derived op reporting its count through caller-owned state. The demo shows the latter end to end.
|
An automated preview of the documentation is available at https://375.capy.prtest3.cppalliance.org/index.html If more commits are pushed to the pull request, the docs will rebuild at the same URL. 2026-07-28 14:37:03 UTC |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #375 +/- ##
========================================
Coverage 98.09% 98.09%
========================================
Files 132 132
Lines 6288 6288
========================================
Hits 6168 6168
Misses 120 120
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
GCOVR code coverage report https://375.capy.prtest3.cppalliance.org/gcovr/index.html Build time: 2026-07-28 14:56:11 UTC |
…pound results
stdexec dispatches the C++26 static-template signature query, so the pre-P3164 instance-form overloads and the aggregate scaffolding that accommodated beman's brace-init decomposition probe go away; private data members remain the durable decomposition opt-out.
Sender completion channels are exclusive, so a compound io_result (error_code plus payload) cannot complete without silently dropping the payload on set_error/set_stopped - a partial read's byte count would vanish. Restore the original compile-time rejection, covering both as_sender and the awaitable_sender_base CRTP path, and delete the runtime split.
Payload delivery is pinned by tests on both sanctioned routes: a task<error_code> wrapper that moves the count out through a side channel, and counted_read_op, a base-derived op reporting its count through caller-owned state. The demo shows the latter end to end.