Some more permissive issues

This commit is contained in:
Denis Blank 2018-02-27 17:18:52 +01:00
parent 707acd0f93
commit 6819c68bb2

View File

@ -179,19 +179,21 @@ inline auto asserting_eq_check() {
}; };
} }
template <typename C, typename... Args> template <typename... Expected>
void assert_async_types(C&& continuable, traits::identity<Args...> expected) { struct assert_async_types_validator {
assert_async_validation( template <typename... Actual>
std::forward<C>(continuable), [&](auto... actualPack) { void operator()(Actual...) {
auto actual = traits::identity<decltype(actualPack)...>{}; static_assert(std::is_same<traits::identity<Actual...>,
util::unused(expected, actual, traits::identity<Expected...>>::value,
std::forward<decltype(actualPack)>(actualPack)...); "The called arguments don't match with the expected ones!");
}
};
static_assert( template <typename C, typename... Args>
std::is_same<std::decay_t<decltype(expected)>, void assert_async_types(C&& continuable,
std::decay_t<decltype(actual)>>::value, traits::identity<Args...> /*expected*/) {
"The called arguments don't match with the expected ones!"); assert_async_validation(std::forward<C>(continuable),
}); assert_async_types_validator<Args...>{});
} }
} // namespace testing } // namespace testing
} // namespace detail } // namespace detail