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.
5 #ifndef CC_BASE_SCOPED_PTR_ALGORITHM_H_
6 #define CC_BASE_SCOPED_PTR_ALGORITHM_H_
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
,
17 Predicate predicate
) {
18 ForwardIterator result
= first
;
19 for (; first
!= last
; ++first
) {
20 if (!predicate(*first
)) {
21 container
->swap(first
, result
);
30 #endif // CC_BASE_SCOPED_PTR_ALGORITHM_H_