Utils: Implement more Utils::anyOf variations

Change-Id: I0cba5b58dde6003f5c5cb399142f985cbe83f0a7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2017-12-01 11:01:19 +01:00
parent 8cd2c234db
commit 9b832f670d
2 changed files with 37 additions and 3 deletions

View File

@@ -40,6 +40,11 @@ namespace Utils
//////////////////
// anyOf
/////////////////
template<typename T, typename F>
bool anyOf(const T &container, F predicate)
{
return std::any_of(std::begin(container), std::end(container), predicate);
}
// anyOf taking a member function pointer
template<typename T, typename R, typename S>
@@ -48,12 +53,17 @@ bool anyOf(const T &container, R (S::*predicate)() const)
return std::any_of(std::begin(container), std::end(container), std::mem_fn(predicate));
}
template<typename T, typename F>
bool anyOf(const T &container, F predicate)
// anyOf taking a member pointer
template<typename T, typename R, typename S>
bool anyOf(const T &container, R S::*member)
{
return std::any_of(std::begin(container), std::end(container), predicate);
return std::any_of(std::begin(container), std::end(container), std::mem_fn(member));
}
//////////////////
// count
/////////////////
template<typename T, typename F>
int count(const T &container, F predicate)
{