Open
Description
The current defn of the operation_state
concept is:
template<class O>
concept operation_state =
derived_from<typename O::operation_state_concept, operation_state_t> &&
is_object_v<O> &&
requires (O& o) {
{ start(o) } noexcept;
};
i think the is_object_v<O>
constraint is not needed because the derived_from
constraint has already established that O
is a class type.
and start(o)
is always noexcept
now that start
mandates the noexcept
-ness of op.start()
.
Proposed resolution:
Change the operation_state
concept to:
template<class O>
concept operation_state =
derived_from<typename O::operation_state_concept, operation_state_t> &&
requires (O& o) {
start(o);
};