cmRange: Add functions all_of, any_of, none_of

This commit is contained in:
Regina Pfeifer 2019-02-15 21:45:10 +01:00 committed by Brad King
parent 17a367e77f
commit da4773e8b8

View File

@ -6,6 +6,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include <algorithm>
#include <functional>
#include <iterator>
template <typename Iter>
@ -55,6 +56,24 @@ public:
return std::move(*this);
}
template <typename UnaryPredicate>
bool all_of(UnaryPredicate p) const
{
return std::all_of(this->Begin, this->End, std::ref(p));
}
template <typename UnaryPredicate>
bool any_of(UnaryPredicate p) const
{
return std::any_of(this->Begin, this->End, std::ref(p));
}
template <typename UnaryPredicate>
bool none_of(UnaryPredicate p) const
{
return std::none_of(this->Begin, this->End, std::ref(p));
}
private:
Iter Begin;
Iter End;