diff --git a/include/continuable/detail/traverse.hpp b/include/continuable/detail/traverse.hpp index 4d2f98a..3d736fc 100644 --- a/include/continuable/detail/traverse.hpp +++ b/include/continuable/detail/traverse.hpp @@ -284,11 +284,17 @@ struct strategy_remap_tag {}; template using is_effective_t = traits::is_invocable; +// TODO find out whether the linear compile-time instantiation is faster: +// template +// struct is_effective_any_of_t +// : traits::disjunction...> {}; +// template +// struct is_effective_any_of_t : std::false_type {}; + /// Deduces to a true type if any type leads to at least one effective /// call to the mapper. template struct is_effective_any_of_t; - template struct is_effective_any_of_t : std::conditional::value, std::true_type, diff --git a/test/unit-test/single/test-continuable-traverse.cpp b/test/unit-test/single/test-continuable-traverse.cpp index d656794..2fa853e 100644 --- a/test/unit-test/single/test-continuable-traverse.cpp +++ b/test/unit-test/single/test-continuable-traverse.cpp @@ -548,7 +548,7 @@ TEST(test_strategic_container_traverse, traverse_move_only_wrapped) { std::size_t counter = 0; traverse_pack( - [&counter](auto&& ptr) { + [&counter](auto&& ptr) -> void { auto moved(std::forward(ptr)); EXPECT_EQ((*moved), 5); ++counter;