1 #ifndef MSP_CORE_MAPUTILS_H_
2 #define MSP_CORE_MAPUTILS_H_
9 class key_error: public std::runtime_error
12 key_error(const std::type_info &);
13 ~key_error() throw() { }
18 typename T::mapped_type &get_item(T &map, const typename T::key_type &key)
20 typename T::iterator i = map.find(key);
22 throw key_error(typeid(T));
28 const typename T::mapped_type &get_item(const T &map, const typename T::key_type &key)
30 typename T::const_iterator i = map.find(key);
32 throw key_error(typeid(T));
38 const typename T::iterator insert_unique(T &map, const typename T::key_type &key, const typename T::mapped_type &item)
41 throw key_error(typeid(T));
43 return map.insert(typename T::value_type(key, item)).first;