namespace boost {
template<typename Key, typename Mapped, typename Hash = boost::hash<Key>,
typename Pred = std::equal_to<Key>,
typename Alloc = std::allocator<std::pair<Key const, Mapped>> >
class unordered_map;
template<typename Key, typename Mapped, typename Hash, typename Pred,
typename Alloc>
bool operator==(unordered_map<Key, Mapped, Hash, Pred, Alloc> const&,
unordered_map<Key, Mapped, Hash, Pred, Alloc> const&);
template<typename Key, typename Mapped, typename Hash, typename Pred,
typename Alloc>
bool operator!=(unordered_map<Key, Mapped, Hash, Pred, Alloc> const&,
unordered_map<Key, Mapped, Hash, Pred, Alloc> const&);
template<typename Key, typename Mapped, typename Hash, typename Pred,
typename Alloc>
void swap(unordered_map<Key, Mapped, Hash, Pred, Alloc>&,
unordered_map<Key, Mapped, Hash, Pred, Alloc>&);
template<typename Key, typename Mapped, typename Hash = boost::hash<Key>,
typename Pred = std::equal_to<Key>,
typename Alloc = std::allocator<std::pair<Key const, Mapped>> >
class unordered_multimap;
template<typename Key, typename Mapped, typename Hash, typename Pred,
typename Alloc>
bool operator==(unordered_multimap<Key, Mapped, Hash, Pred, Alloc> const&,
unordered_multimap<Key, Mapped, Hash, Pred, Alloc> const&);
template<typename Key, typename Mapped, typename Hash, typename Pred,
typename Alloc>
bool operator!=(unordered_multimap<Key, Mapped, Hash, Pred, Alloc> const&,
unordered_multimap<Key, Mapped, Hash, Pred, Alloc> const&);
template<typename Key, typename Mapped, typename Hash, typename Pred,
typename Alloc>
void swap(unordered_multimap<Key, Mapped, Hash, Pred, Alloc>&,
unordered_multimap<Key, Mapped, Hash, Pred, Alloc>&);
}