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