OLD | NEW |
| (Empty) |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CC_SCOPED_PTR_ALGORITHM_H_ | |
6 #define CC_SCOPED_PTR_ALGORITHM_H_ | |
7 | |
8 namespace cc { | |
9 | |
10 // ScopedContainers need to implement a swap() method since they do not allow | |
11 // assignment to their iterators. | |
12 template <class ForwardIterator, class Predicate, class ScopedContainer> | |
13 ForwardIterator remove_if( | |
14 ScopedContainer& container, | |
15 ForwardIterator first, | |
16 ForwardIterator last, | |
17 Predicate predicate) { | |
18 ForwardIterator result = first; | |
19 for (; first != last; ++first) { | |
20 if (!predicate(*first)) { | |
21 container.swap(first, result); | |
22 ++result; | |
23 } | |
24 } | |
25 return result; | |
26 } | |
27 | |
28 } // namespace cc | |
29 | |
30 #endif // CC_SCOPED_PTR_ALGORITHM_H_ | |
OLD | NEW |