#ifndef TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_QUERY_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_QUERY_H_ #include "fold.h" #include "map.h" #include "operation/math.h" #include "operation/logic.h" namespace tav { template < template class Predicate, typename List > using Any = Fold< Or, Boolean, typename Map::type >; template < template class Predicate, typename List > using All = Fold< And, Boolean, typename Map::type >; template < template class Predicate, typename List > using None = Not< typename Any::type >; template < template class Predicate, typename List > using Count = Fold< Add, tav::Size<0>, typename Map::type >; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_QUERY_H_