mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Added c++20 polyfill: erase_if for std::set
This commit is contained in:
parent
76dd9dcc8a
commit
3c9a45987a
@ -49,4 +49,19 @@ erase_if(std::unordered_map<Key, T, Hash, KeyEqual, Alloc>& _c, Pred _pred)
|
||||
return old_size - _c.size();
|
||||
}
|
||||
|
||||
// Taken from https://en.cppreference.com/w/cpp/container/set/erase_if
|
||||
template<class Key, class Compare, class Alloc, class Pred>
|
||||
typename std::set<Key,Compare,Alloc>::size_type
|
||||
erase_if(std::set<Key,Compare,Alloc>& c, Pred pred)
|
||||
{
|
||||
auto old_size = c.size();
|
||||
for (auto i = c.begin(), last = c.end(); i != last; )
|
||||
if (pred(*i))
|
||||
i = c.erase(i);
|
||||
else
|
||||
++i;
|
||||
|
||||
return old_size - c.size();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user