diff --git a/include/etl/expected.h b/include/etl/expected.h index 655be8b1..0bd3fa1a 100644 --- a/include/etl/expected.h +++ b/include/etl/expected.h @@ -315,13 +315,13 @@ namespace etl //******************************************* /// Copy construct from unexpected type. //******************************************* - template ::value, bool>::type = false> + template ::value, bool> = false> ETL_CONSTEXPR14 explicit expected(const etl::unexpected& ue) : storage(etl::in_place_index_t(), ue.error()) { } - template ::value, bool>::type = false> + template ::value, bool> = false> ETL_CONSTEXPR14 expected(const etl::unexpected& ue) : storage(etl::in_place_index_t(), ue.error()) { @@ -338,13 +338,13 @@ namespace etl //******************************************* /// Move construct from unexpected type. //******************************************* - template ::value, bool>::type = false> + template ::value, bool> = false> ETL_CONSTEXPR14 explicit expected(etl::unexpected&& ue) : storage(etl::in_place_index_t(), etl::move(ue.error())) { } - template ::value, bool>::type = false> + template ::value, bool> = false> ETL_CONSTEXPR14 expected(etl::unexpected&& ue) : storage(etl::in_place_index_t(), etl::move(ue.error())) { @@ -807,97 +807,97 @@ namespace etl } #if ETL_USING_CPP11 - template ::type>::type> + template >> auto transform(F&& f) & -> expected { return transform_impl(etl::forward(f), *this); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto transform(F&& f) const& -> expected { return transform_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto transform(F&& f) && -> expected { return transform_impl(etl::forward(f), etl::move(*this)); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto transform(F&& f) const&& -> expected { return transform_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto and_then(F&& f) & -> U { return and_then_impl(etl::forward(f), *this); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto and_then(F&& f) const& -> U { return and_then_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto and_then(F&& f) && -> U { return and_then_impl(etl::forward(f), etl::move(*this)); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto and_then(F&& f) const&& -> U { return and_then_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto or_else(F&& f) & -> U { return or_else_impl(etl::forward(f), *this); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto or_else(F&& f) const& -> U { return or_else_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto or_else(F&& f) && -> U { return or_else_impl(etl::forward(f), etl::move(*this)); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto or_else(F&& f) const&& -> U { return or_else_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto transform_error(F&& f) & -> expected { return transform_error_impl(etl::forward(f), *this); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto transform_error(F&& f) const& -> expected { return transform_error_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto transform_error(F&& f) && -> expected { return transform_error_impl(etl::forward(f), etl::move(*this)); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t< etl::invoke_result_t>> auto transform_error(F&& f) const&& -> expected { return transform_error_impl(etl::forward(f), etl::move(*this)); @@ -916,7 +916,7 @@ namespace etl storage_type storage; #if ETL_USING_CPP11 - template < typename F, typename TExp, typename TRet, typename TValueRef, typename = typename etl::enable_if::value>::type> + template < typename F, typename TExp, typename TRet, typename TValueRef, typename = etl::enable_if_t::value>> auto transform_impl(F&& f, TExp&& exp) const -> expected { if (exp.has_value()) @@ -929,7 +929,7 @@ namespace etl } } - template < typename F, typename TExp, typename TRet, typename TValueRef, typename = typename etl::enable_if::value>::type> + template < typename F, typename TExp, typename TRet, typename TValueRef, typename = etl::enable_if_t::value>> auto transform_impl(F&& f, TExp&& exp) const -> expected { if (exp.has_value()) @@ -944,8 +944,8 @@ namespace etl } template < typename F, typename TExp, typename TRet, typename TValueRef, - typename = typename etl::enable_if< !etl::is_void::value && etl::is_expected::value - && etl::is_same::value>::type> + typename = etl::enable_if_t::value && etl::is_expected::value + && etl::is_same::value>> auto and_then_impl(F&& f, TExp&& exp) const -> TRet { if (exp.has_value()) @@ -959,8 +959,8 @@ namespace etl } template < typename F, typename TExp, typename TRet, typename TErrorRef, - typename = typename etl::enable_if< !etl::is_void::value && etl::is_expected::value - && etl::is_same::value>::type> + typename = etl::enable_if_t::value && etl::is_expected::value + && etl::is_same::value>> auto or_else_impl(F&& f, TExp&& exp) const -> TRet { if (exp.has_value()) @@ -973,7 +973,7 @@ namespace etl } } - template < typename F, typename TExp, typename TRet, typename TErrorRef, typename = typename etl::enable_if::value>::type> + template < typename F, typename TExp, typename TRet, typename TErrorRef, typename = etl::enable_if_t::value>> auto transform_error_impl(F&& f, TExp&& exp) const -> expected { if (exp.has_value()) @@ -1216,97 +1216,97 @@ namespace etl } #if ETL_USING_CPP11 - template ::type>::type> + template >> auto transform(F&& f) & -> expected { return transform_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto transform(F&& f) const& -> expected { return transform_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto transform(F&& f) && -> expected { return transform_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto transform(F&& f) const&& -> expected { return transform_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto and_then(F&& f) & -> U { return and_then_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto and_then(F&& f) const& -> U { return and_then_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto and_then(F&& f) && -> U { return and_then_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto and_then(F&& f) const&& -> U { return and_then_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto or_else(F&& f) & -> U { return or_else_impl(etl::forward(f), *this); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t>> auto or_else(F&& f) const& -> U { return or_else_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto or_else(F&& f) && -> U { return or_else_impl(etl::forward(f), etl::move(*this)); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t>> auto or_else(F&& f) const&& -> U { return or_else_impl(etl::forward(f), etl::move(*this)); } - template ::type>::type> + template >> auto transform_error(F&& f) & -> expected { return transform_error_impl(etl::forward(f), *this); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t>> auto transform_error(F&& f) const& -> expected { return transform_error_impl(etl::forward(f), *this); } - template ::type>::type> + template >> auto transform_error(F&& f) && -> expected { return transform_error_impl(etl::forward(f), etl::move(*this)); } - template < typename F, typename U = typename etl::remove_cvref< typename etl::invoke_result::type>::type> + template < typename F, typename U = etl::remove_cvref_t>> auto transform_error(F&& f) const&& -> expected { return transform_error_impl(etl::forward(f), etl::move(*this)); @@ -1324,7 +1324,7 @@ namespace etl etl::variant storage; #if ETL_USING_CPP11 - template < typename F, typename TExp, typename TRet, typename = typename etl::enable_if::value>::type> + template < typename F, typename TExp, typename TRet, typename = etl::enable_if_t::value>> auto transform_impl(F&& f, TExp&& exp) const -> expected { if (exp.has_value()) @@ -1337,7 +1337,7 @@ namespace etl } } - template < typename F, typename TExp, typename TRet, typename = typename etl::enable_if::value>::type> + template < typename F, typename TExp, typename TRet, typename = etl::enable_if_t::value>> auto transform_impl(F&& f, TExp&& exp) const -> expected { if (exp.has_value()) @@ -1352,8 +1352,8 @@ namespace etl } template < typename F, typename TExp, typename TRet, - typename = typename etl::enable_if< !etl::is_void::value && etl::is_expected::value - && etl::is_same::value>::type> + typename = etl::enable_if_t< !etl::is_void::value && etl::is_expected::value + && etl::is_same::value>> auto and_then_impl(F&& f, TExp&& exp) const -> TRet { if (exp.has_value()) @@ -1367,8 +1367,8 @@ namespace etl } template ::value && etl::is_expected::value - && etl::is_same::value>::type> + typename = etl::enable_if_t< !etl::is_void::value && etl::is_expected::value + && etl::is_same::value>> auto or_else_impl(F&& f, TExp&& exp) const -> TRet { if (exp.has_value()) @@ -1381,7 +1381,7 @@ namespace etl } } - template < typename F, typename TExp, typename TRet, typename TErrorRef, typename = typename etl::enable_if::value>::type> + template < typename F, typename TExp, typename TRet, typename TErrorRef, typename = etl::enable_if_t::value>> auto transform_error_impl(F&& f, TExp&& exp) const -> expected { if (exp.has_value())