File tree Expand file tree Collapse file tree
include/CoroutineTests/alien Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -115,6 +115,10 @@ struct Task<ResultType>::promise_type {
115115 void return_value (T&& value) {
116116 m_promise.set_value (std::forward<T>(value));
117117 }
118+ // Overload to resolve ambiguity
119+ void return_value (ResultType value) {
120+ m_promise.set_value (std::move (value));
121+ }
118122};
119123
120124template <typename ResultType>
Original file line number Diff line number Diff line change @@ -113,6 +113,8 @@ struct Task<ResultType>::promise_type {
113113 void return_value (T&& value) {
114114 m_value = std::forward<T>(value);
115115 }
116+ // Overload to resolve ambiguity
117+ void return_value (ResultType value) { m_value.emplace (std::move (value)); }
116118};
117119
118120template <typename ResultType>
Original file line number Diff line number Diff line change @@ -117,6 +117,8 @@ struct ReturnHelper {
117117 void return_value (T&& value) {
118118 m_value.emplace (std::forward<T>(value));
119119 }
120+ // Overload to resolve ambiguity
121+ void return_value (ResultType value) { m_value.emplace (std::move (value)); }
120122};
121123
122124// Specialization for void return type
Original file line number Diff line number Diff line change @@ -117,6 +117,8 @@ struct ReturnHelper {
117117 void return_value (T&& value) {
118118 m_value.emplace (std::forward<T>(value));
119119 }
120+ // Overload to resolve ambiguity
121+ void return_value (ResultType value) { m_value.emplace (std::move (value)); }
120122};
121123
122124// Specialization for void return type
You can’t perform that action at this time.
0 commit comments