12 # include <boost/lexical_cast.hpp>
21 template <
class T,
class N>
27 template <
class T,
class N>
34 template <
class T,
class N>
39 template <
class T,
class N>
46 template <
class T,
class N>
53 template <
class T,
class N>
58 if (ires != map_.end())
61 throw std::range_error(std::string(
"map: no mapping for ")
62 + boost::lexical_cast<std::string>(t));
65 template <
class T,
class N>
70 if (ires != map_.end())
73 throw std::range_error(std::string(
"map: no mapping for ")
74 + boost::lexical_cast<std::string>(t));
77 template <
class T,
class N>
81 return map_.key_comp();
84 template <
class T,
class N>
88 return xfind(t)->second;
91 template <
class T,
class N>
97 res.push_back(
operator()(t));
101 template <
class T,
class N>
106 ostr << p.first <<
" -> " << p.second <<
misc::iendl;
110 template <
class T,
class N>
114 return operator()(t);
117 template <
class T,
class N>
124 template <
class T,
class N>
131 template <
class T,
class N>
138 template <
class T,
class N>
145 template <
class T,
class N>
153 template <
class T,
class N>
157 return map_.lower_bound(k);
160 template <
class T,
class N>
164 return map_.lower_bound(k);
168 template <
class T,
class N>
169 std::pair<typename map<T, N>::iterator,
bool>
172 return map_.insert(x);
175 template <
class T,
class N>
179 map_.insert(other.
begin(), other.
end());
182 template <
class T,
class N>
183 template <
class... Args>
184 std::pair<typename map<T, N>::iterator,
bool>
187 return map_.emplace(std::forward<Args>(args)...);
190 template <
class T,
class N>
197 template <
class T,
class N>
204 template <
class T,
class N>
208 typename map_type::iterator ires = xfind(t);
209 N elt = ires->second;
214 template <
class T,
class N>
221 template <
class T,
class N>
223 operator<<(std::ostream& ostr, const map<T, N>& m)
225 return m.print(ostr);
230 #endif // !MISC_MAP_HXX