Allow co_yield of rvalue from generator<T&>

Need to define `yield_value()` overload taking rvalue reference for all types.
This commit is contained in:
Lewis Baker 2019-01-10 16:15:04 -08:00
parent 64b0572fa8
commit 59f2e779a2

View file

@ -35,14 +35,14 @@ namespace cppcoro
template<
typename U = T,
std::enable_if_t<!std::is_lvalue_reference<U>::value, int> = 0>
std::experimental::suspend_always yield_value(T& value) noexcept
std::enable_if_t<!std::is_rvalue_reference<U>::value, int> = 0>
std::experimental::suspend_always yield_value(std::remove_reference_t<T>& value) noexcept
{
m_value = std::addressof(value);
return {};
}
std::experimental::suspend_always yield_value(T&& value) noexcept
std::experimental::suspend_always yield_value(std::remove_reference_t<T>&& value) noexcept
{
m_value = std::addressof(value);
return {};