]> git.tdb.fi Git - libs/core.git/commitdiff
Add an algorithm to check for existence of a value in a container
authorMikko Rasa <tdb@tdb.fi>
Mon, 19 Dec 2022 10:06:20 +0000 (12:06 +0200)
committerMikko Rasa <tdb@tdb.fi>
Mon, 19 Dec 2022 10:06:20 +0000 (12:06 +0200)
source/core/algorithm.h

index 251a81ef1113b7f63cc849d1e78302bf5c941449..30ca267bfe73435bd2bf2e995e781f3d083a7ca4 100644 (file)
@@ -30,6 +30,20 @@ inline typename Container::const_iterator find_if(const Container &cont, Predica
        return std::find_if(cont.begin(), cont.end(), pred);
 }
 
+template<typename T>
+struct ValueMatch
+{
+       const T &value;
+
+       bool operator()(const T &v) { return v==value; }
+};
+
+template<typename Container, typename T>
+inline bool any_equals(Container &cont, const T &value)
+{
+       return std::any_of(cont.begin(), cont.end(), ValueMatch<T>{value});
+}
+
 template<typename Container, typename T>
 inline typename Container::iterator lower_bound(Container &cont, const T &value)
 {