diff --git a/include/continuable/detail/testing.hpp b/include/continuable/detail/testing.hpp index 24deb73..c0f21aa 100644 --- a/include/continuable/detail/testing.hpp +++ b/include/continuable/detail/testing.hpp @@ -77,34 +77,35 @@ void assert_async_validation(C&& continuable, V&& validator) { template void assert_async_binary_validation(V&& validator, C&& continuable, Args&&... expected) { + + using size = std::integral_constant; + assert_async_validation(std::forward(continuable), [ expected_pack = std::make_tuple(std::forward(expected)...), validator = std::forward(validator) ](auto&&... args) mutable { - auto actual_pack = std::make_tuple(std::forward(args)...); - - auto size = traits::pack_size_of(traits::identity_of(expected_pack)); - - static_assert(size.value == std::tuple_size::value, + static_assert(size::value == sizeof...(args), "Async completion handler called with a different count " "of arguments!"); - traits::unpack(std::move(expected_pack), [&](auto&&... expected) { - std::initializer_list{ - 0, ((void)validator(std::forward(args), - std::forward(expected)), - 0)...}; - }); + validator(std::make_tuple(std::forward(args)...), + expected_pack); }); } inline auto expecting_eq_check() { - return [](auto expected, auto actual) { EXPECT_EQ(expected, actual); }; + return [](auto&& expected, auto&& actual) { + EXPECT_EQ(std::forward(expected), + std::forward(actual)); + }; } inline auto asserting_eq_check() { - return [](auto expected, auto actual) { ASSERT_EQ(expected, actual); }; + return [](auto&& expected, auto&& actual) { + ASSERT_EQ(std::forward(expected), + std::forward(actual)); + }; } template diff --git a/include/continuable/detail/traits.hpp b/include/continuable/detail/traits.hpp index 52f2dbe..99674c3 100644 --- a/include/continuable/detail/traits.hpp +++ b/include/continuable/detail/traits.hpp @@ -347,7 +347,7 @@ constexpr void static_for_each_in(Sequenceable&& sequenceable, unpack( std::forward(sequenceable), [&](auto&&... entries) mutable { // Apply the consume function to every entry inside the pack - std::initializer_list{0, + (void)std::initializer_list{0, ((void)handler(std::forward(entries)), 0)...}; }); }