diff --git a/include/continuable/detail/traverse.hpp b/include/continuable/detail/traverse.hpp index 46ca3f8..99cd159 100644 --- a/include/continuable/detail/traverse.hpp +++ b/include/continuable/detail/traverse.hpp @@ -191,10 +191,10 @@ struct flat_arraylizer { template constexpr auto apply_spread_impl(std::true_type, C&& callable, T&&... args) -> decltype( - invoke_fused(std::forward(callable), - std::tuple_cat(undecorate(std::forward(args))...))) { - return invoke_fused(std::forward(callable), - std::tuple_cat(undecorate(std::forward(args))...)); + traits::unpack(std::tuple_cat(undecorate(std::forward(args))...)), + std::forward(callable)) { + return traits::unpack(std::tuple_cat(undecorate(std::forward(args))...), + std::forward(callable)); } /// Use the linear instantiation for variadic packs which don't @@ -601,15 +601,15 @@ struct tuple_like_remapper< /// to a container of the same type which may contain /// different types. template -auto remap(Strategy, T&& container, M&& mapper) -> decltype(invoke_fused( +auto remap(Strategy, T&& container, M&& mapper) -> decltype(traits::unpack( + std::forward(container), std::declval::type, - typename std::decay::type>>(), - std::forward(container))) { - return invoke_fused( + typename std::decay::type>>())) { + return traits::unpack( + std::forward(container), tuple_like_remapper::type, typename std::decay::type>{ - std::forward(mapper)}, - std::forward(container)); + std::forward(mapper)}); } } // end namespace tuple_like_remapping