32 #include <type_traits>
38 template<
template<
typename>
class Pred>
45 struct Negate<std::integral_constant<bool, V>>
47 using Result_t = std::integral_constant<bool, !V>;
51 struct Result_t : Negate<typename Pred<T>::type>::Result_t {};
54 template<
template<
typename>
class Pred,
typename... Args>
55 constexpr
auto AllOf = (Pred<Args> {} && ...);
57 template<
template<
typename>
class Pred,
typename... Args>
58 constexpr
auto AnyOf = (Pred<Args> {} || ...);