#ifndef PROMISE_RETURN_OPS_H #define PROMISE_RETURN_OPS_H #include #include #include namespace sscl::co { /** `return_value` / `return_void` only. ThreadTag is not a template parameter here: * for tagged promises, PromiseType is `TaggedPostingPromise`. */ template > struct PromiseReturnOps; template struct PromiseReturnOps { void return_value(T returnValue) noexcept { static_cast(this)->returnValues.myReturnValue = std::move(returnValue); } }; template struct PromiseReturnOps { void return_void() noexcept { return; } }; } // namespace sscl::co #endif // PROMISE_RETURN_OPS_H