| 3775 | *std::declval<Exp>())), |
| 3776 | detail::enable_if_t<!std::is_void<Ret>::value> * = nullptr> |
| 3777 | constexpr auto expected_map_impl(Exp &&exp, F &&f) { |
| 3778 | using result = ret_t<Exp, detail::decay_t<Ret>>; |
| 3779 | return exp.has_value() ? result(detail::invoke(std::forward<F>(f), |
| 3780 | *std::forward<Exp>(exp))) |
| 3781 | : result(unexpect, std::forward<Exp>(exp).error()); |
| 3782 | } |
| 3783 | |
| 3784 | template <class Exp, class F, |
| 3785 | detail::enable_if_t<!std::is_void<exp_t<Exp>>::value> * = nullptr, |