1 #pragma once 2 3 #ifdef _MSC_VER 4 5 #include <experimental/map> 6 7 #else 8 9 namespace std 10 { 11 namespace experimental 12 { 13 template<class Key, class T, class Compare, class Alloc, class Pred> erase_if(std::map<Key,T,Compare,Alloc> & c,Pred pred)14 void erase_if(std::map<Key, T, Compare, Alloc>& c, Pred pred) 15 { 16 for(auto i = c.begin(), last = c.end(); i != last; ) 17 { 18 if(pred(*i)) 19 { 20 i = c.erase(i); 21 } 22 else 23 { 24 ++i; 25 } 26 } 27 } 28 } 29 } 30 31 #endif 32