| Index: base/stl_util.h
|
| diff --git a/base/stl_util.h b/base/stl_util.h
|
| index 2cec11b2e6c9069af85f3e1e7f4a600d5c4b2337..b0670b295eb87d9a28d5621f3f86883fa038a39f 100644
|
| --- a/base/stl_util.h
|
| +++ b/base/stl_util.h
|
| @@ -222,43 +222,68 @@ void EraseIf(std::list<T, Allocator>& container, Predicate pred) {
|
| container.remove_if(pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::map<T, Allocator>& container, Predicate pred) {
|
| +template <class Key, class T, class Compare, class Allocator, class Predicate>
|
| +void EraseIf(std::map<Key, T, Compare, Allocator>& container, Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::multimap<T, Allocator>& container, Predicate pred) {
|
| +template <class Key, class T, class Compare, class Allocator, class Predicate>
|
| +void EraseIf(std::multimap<Key, T, Compare, Allocator>& container,
|
| + Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::set<T, Allocator>& container, Predicate pred) {
|
| +template <class Key, class Compare, class Allocator, class Predicate>
|
| +void EraseIf(std::set<Key, Compare, Allocator>& container, Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::multiset<T, Allocator>& container, Predicate pred) {
|
| +template <class Key, class Compare, class Allocator, class Predicate>
|
| +void EraseIf(std::multiset<Key, Compare, Allocator>& container,
|
| + Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::unordered_map<T, Allocator>& container, Predicate pred) {
|
| +template <class Key,
|
| + class T,
|
| + class Hash,
|
| + class KeyEqual,
|
| + class Allocator,
|
| + class Predicate>
|
| +void EraseIf(std::unordered_map<Key, T, Hash, KeyEqual, Allocator>& container,
|
| + Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::unordered_multimap<T, Allocator>& container, Predicate pred) {
|
| +template <class Key,
|
| + class T,
|
| + class Hash,
|
| + class KeyEqual,
|
| + class Allocator,
|
| + class Predicate>
|
| +void EraseIf(
|
| + std::unordered_multimap<Key, T, Hash, KeyEqual, Allocator>& container,
|
| + Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::unordered_set<T, Allocator>& container, Predicate pred) {
|
| +template <class Key,
|
| + class Hash,
|
| + class KeyEqual,
|
| + class Allocator,
|
| + class Predicate>
|
| +void EraseIf(std::unordered_set<Key, Hash, KeyEqual, Allocator>& container,
|
| + Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
| -template <class T, class Allocator, class Predicate>
|
| -void EraseIf(std::unordered_multiset<T, Allocator>& container, Predicate pred) {
|
| +template <class Key,
|
| + class Hash,
|
| + class KeyEqual,
|
| + class Allocator,
|
| + class Predicate>
|
| +void EraseIf(std::unordered_multiset<Key, Hash, KeyEqual, Allocator>& container,
|
| + Predicate pred) {
|
| internal::IterateAndEraseIf(container, pred);
|
| }
|
|
|
|
|