#ifndef CORE_UNORDERED_SET_HPP #define CORE_UNORDERED_SET_HPP #include #include namespace core { inline namespace v2 { template void erase_if (::std::unordered_multiset& m, Predicate pred) { for (auto iter = begin(m); iter != end(m);) { invoke(pred, *iter) ? iter = m.erase(iter) : ++iter; } } template void erase_if (::std::unordered_set& m, Predicate pred) { for (auto iter = begin(m); iter != end(m);) { invoke(pred, *iter) ? iter = m.erase(iter) : ++iter; } } }} /* namespace core::v2 */ namespace core { inline namespace v2 { namespace pmr { template < class Key, class Hash=::std::hash, class Pred=::std::equal_to > using unordered_multiset = ::std::unordered_multiset< Key, Hash, Pred, polymorphic_allocator >; template < class Key, class Hash=::std::hash, class Pred=::std::equal_to > using unordered_set = ::std::unordered_set< Key, Hash, Pred, polymorphic_allocator> >; }}} /* namespace core::v2::pmr */ #endif /* CORE_UNORDERED_SET_HPP */