Open ericniebler opened 10 months ago
@ericniebler @lewissbaker - IIUC (the latest incarnation of) this is discussed as part of https://github.com/cplusplus/sender-receiver/issues/246? (if so, should we unite/close)?
@ericniebler @lewissbaker - IIUC (the latest incarnation of) this is discussed as part of #246? (if so, should we unite/close)?
I don't think that #246 discusses the issue of start() CPO requiring noexcept or not.
It is true that the current wording of the operation_state
concept requiring start(o)
to be noexcept is somewhat redundant with the start(op)
cpo being defined as expression-equivalent to MANDATE-NOTHROW(op.start())
which is ill-formed if op.start()
is not noexcept.
I'm not sure if this is something that is harmful, however.
If we wanted to simplify the operation_state
concept we could replace the line { start(o) } noexcept;
with simply start(o);
.
@ericniebler do you know if this was discussed in LWG review?
Issue by bylee20 Friday Feb 03, 2023 at 15:02 GMT _Originally opened as https://github.com/brycelelbach/wg21_p2300_execution/issues/23_
From https://brycelelbach.github.io/wg21_p2300_execution/execution.html#spec-execution.op_state.start
Since
execution::start(O)
already mandates noexcept here, noexcept-ness should be checked inexecution::start(O)
by compiler. Then, the requirement of{ execution::start(o) } noexcept
inoperation_state
concept will be always satisfied and redundant.