#ifndef CORE_UNORDERED_MAP_HPP #define CORE_UNORDERED_MAP_HPP #include #include namespace core { inline namespace v2 { template void erase_if (::std::unordered_multimap& 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_map& 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 T, class Hash=::std::hash, class Pred=::std::equal_to > using unordered_multimap = ::std::unordered_multimap< Key, T, Hash, Pred, polymorphic_allocator<::std::pair> >; template < class Key, class T, class Hash=::std::hash, class Pred=::std::equal_to > using unordered_map = ::std::unordered_map< Key, T, Hash, Pred, polymorphic_allocator<::std::pair> >; }}} /* namespace core::v2::pmr */ #endif /* CORE_UNORDERED_MAP_HPP */