}
template<typename T>
-const typename T::iterator insert_unique(T &map, const typename T::key_type &key, const typename T::mapped_type &item)
+typename T::iterator insert_unique(T &map, const typename T::key_type &key, const typename T::mapped_type &item)
{
if(map.count(key))
throw key_error(key);
return map.insert(typename T::value_type(key, item)).first;
}
+template<typename T>
+void remove_existing(T &map, const typename T::key_type &key)
+{
+ if(!map.count(key))
+ throw key_error(key);
+
+ map.erase(key);
+}
+
} // namespace Msp
#endif