1#ifndef KOKKOS_UTILS_CALLBACKS_CONJUNCTIONMATCHER_HPP
2#define KOKKOS_UTILS_CALLBACKS_CONJUNCTIONMATCHER_HPP
15template <
Matcher... MatcherTypes>
requires (
sizeof...(MatcherTypes) > 1)
20 template <
typename... Args>
requires (
sizeof...(Args) > 0 &&
sizeof...(Args) ==
sizeof...(MatcherTypes))
26 return std::apply([&event] (MatcherTypes&... matchers_) {
27 return (matchers_(event) && ...);
34template <
typename... MatcherTypes>
Check that Callable is a matcher for each event in EventTypes.
Callable is a matcher if it is invocable with at least one event type from Kokkos::utils::callbacks::...
ConjunctionMatcher(MatcherTypes &&...) -> ConjunctionMatcher< MatcherTypes... >
Conjunction of matchers that is true only if all matchers agree.
ConjunctionMatcher()=default
std::tuple< MatcherTypes... > matchers
ConjunctionMatcher(Args &&... args)
bool operator()(const EventType &event)