From 768edb5ae76e37bb504386e55f5e7bbca6e84a51 Mon Sep 17 00:00:00 2001 From: kaboissonneault Date: Tue, 5 Dec 2017 12:38:28 -0500 Subject: [PATCH] Fixed mapping on expected not decaying the resulting expression --- expected.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/expected.hpp b/expected.hpp index 2a3442d..23936f0 100644 --- a/expected.hpp +++ b/expected.hpp @@ -1635,7 +1635,7 @@ template ())), detail::enable_if_t::value> * = nullptr> constexpr auto map_impl(Exp &&exp, F &&f) { - using result = ret_t; + using result = ret_t>; return exp.has_value() ? result(detail::invoke(std::forward(f), *std::forward(exp))) : result(unexpect, std::forward(exp).error()); @@ -1660,8 +1660,8 @@ template ())), detail::enable_if_t::value> * = nullptr> -constexpr auto map_impl(Exp &&exp, F &&f) -> ret_t { - using result = ret_t; +constexpr auto map_impl(Exp &&exp, F &&f) -> ret_t> { + using result = ret_t>; return exp.has_value() ? result(detail::invoke(std::forward(f), *std::forward(exp))) @@ -1690,7 +1690,7 @@ template ())), detail::enable_if_t::value> * = nullptr> constexpr auto map_error_impl(Exp &&exp, F &&f) { - using result = expected, Ret>; + using result = expected, detail::decay_t>; return exp.has_value() ? result(*std::forward(exp)) : result(unexpect, detail::invoke(std::forward(f), @@ -1715,8 +1715,8 @@ template (), *std::declval())), detail::enable_if_t::value> * = nullptr> -constexpr auto map_error_impl(Exp &&exp, F &&f) -> expected, Ret> { - using result = ret_t; +constexpr auto map_error_impl(Exp &&exp, F &&f) -> expected, detail::decay_t> { + using result = ret_t>; return exp.has_value() ? result(*std::forward(exp))