blob: ea1dd16da401e19e9304077c0ee4cb7a2f70a78f [file] [log] [blame]
Krzysztof Grobelny51497a02021-11-09 14:56:22 +01001#pragma once
2
3#include <algorithm>
4
5namespace utils
6{
7namespace detail
8{
9
10template <class T>
11concept HasMemberFind = requires(T container)
12{
13 container.find(container.begin()->first);
14};
15
16} // namespace detail
17
18template <detail::HasMemberFind T>
19inline bool contains(const T& container,
20 const typename T::value_type::first_type& key)
21{
22 return container.find(key) != container.end();
23}
24
25template <class T>
26inline bool contains(const T& container, const typename T::value_type& key)
27{
28 return std::find(container.begin(), container.end(), key) !=
29 container.end();
30}
31
32} // namespace utils