diff --git a/BaseLib/Algorithm.h b/BaseLib/Algorithm.h
index 4a9471bda26afacdcc759bcf1906f645e8cc6efd..d53d3fa146fd184cfba35dbe52ab0540ecfb715a 100644
--- a/BaseLib/Algorithm.h
+++ b/BaseLib/Algorithm.h
@@ -228,6 +228,13 @@ bool contains(Container const& container,
            container.end();
 }
 
+template <typename Container, typename Predicate>
+bool containsIf(Container const& container, Predicate&& predicate)
+{
+    return std::find_if(container.begin(), container.end(), predicate) !=
+           container.end();
+}
+
 template <typename Container>
 boost::optional<typename Container::value_type> findFirstNotEqualElement(
     Container const& container, typename Container::value_type const& element)