有一个现有的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,但它甚至无法编译。
我应该怎么做?