#ifndef CORE_SET_HPP #define CORE_SET_HPP #include #include namespace core { inline namespace v1 { template void erase_if (::std::multiset& s, Predicate pred) { for (auto iter = begin(s); iter != end(s);) { invoke(pred, *iter) ? iter = s.erase(iter) : ++iter; } } template void erase_if (::std::set& s, Predicate pred) { for (auto iter = begin(s); iter != end(s);) { invoke(pred, *iter) ? iter = s.erase(iter) : ++iter; } } }} /* namespace core::v1 */ namespace core { inline namespace v2 { namespace pmr { template > using multiset = ::std::multiset>; template > using set = ::std::set>; }}} /* namespace core::v2::pmr */ #endif /* CORE_SET_HPP */