diff --git a/include/seastar/core/coroutine.hh b/include/seastar/core/coroutine.hh index 4373db5cdc4..ba8377a744e 100644 --- a/include/seastar/core/coroutine.hh +++ b/include/seastar/core/coroutine.hh @@ -49,9 +49,11 @@ public: promise_type(promise_type&&) = delete; promise_type(const promise_type&) = delete; - template - void return_value(U&&... value) { - _promise.set_value(std::forward(value)...); + template + void return_value(U&& value) { + using From = decltype(std::forward(value)); + static_assert(std::is_convertible_v, "only implicit conversions are considered"); + _promise.set_value(std::forward(value)); } void return_value(coroutine::exception ce) noexcept {