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