有一个现有的expected<T,E>
类提供这些typedefs
和operators
:
value_type = T
operator *(): expected<T,E>& -> value_type&
const expected<T,E>& -> const value_type&
expected<T,E>&& -> value_type&&
const expected<T,E>&& -> const value_type&&
现在我正在编写这样的函数:
template <typename E>
/*type*/ Unwrap(E&& e)
{
return e.has_value() ? /*what*/
: throw e.error();
}
我应该在评论区放什么?
我试过了auto&&
,*e
它收到了一个excepted&&
但返回了一个value_type&
。
我也试过std::forward
,但它甚至无法编译。
我应该怎么做?