From a107a89991d55d177a691243a420f846bc36f685 Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Tue, 6 Feb 2018 00:18:06 +0100 Subject: [PATCH] Convert all invoke_result traits into decltype(...) --- include/continuable/detail/traverse.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/continuable/detail/traverse.hpp b/include/continuable/detail/traverse.hpp index fdc1522..e1d9309 100644 --- a/include/continuable/detail/traverse.hpp +++ b/include/continuable/detail/traverse.hpp @@ -412,13 +412,13 @@ using dereferenced_of_t = /// references we try to construct the container from a copied /// version. template -using mapped_type_from_t = dereferenced_of_t>::type>>; +using mapped_type_from_t = dereferenced_of_t()(std::declval>()))>>; /// Deduces to a true_type if the mapping maps to zero elements. template -using is_empty_mapped = spreading::is_empty_spread>::type>::type>; +using is_empty_mapped = spreading::is_empty_spread()(std::declval>()))>::type>; /// We are allowed to reuse the container if we map to the same /// type we are accepting and when we have @@ -588,8 +588,8 @@ struct tuple_like_remapper< M mapper_; template - auto operator()(Args&&... args) -> - typename invoke_result::type>::type { + auto operator()(Args&&... args) + -> decltype((std::declval()(std::declval()))()) { int dummy[] = {0, ((void)mapper_(std::forward(args)), 0)...}; (void)dummy; }