1 #pragma once
2 
3 #include <memory>
4 #include <type_traits>
5 #include <utility>
6 
7 namespace mbgl {
8 namespace util {
9 
10 template <typename Container, typename ForwardIterator, typename Predicate>
erase_if(Container & container,ForwardIterator it,Predicate pred)11 void erase_if(Container &container, ForwardIterator it, Predicate pred) {
12     while (it != container.end()) {
13         if (pred(*it)) {
14             it = container.erase(it);
15         } else {
16             ++it;
17         }
18     }
19 }
20 
21 template <typename Container, typename Predicate>
erase_if(Container & container,Predicate pred)22 void erase_if(Container &container, Predicate pred) {
23     erase_if(container, container.begin(), pred);
24 }
25 
26 } // namespace util
27 } // namespace mbgl
28