2 // Copyright (C) 2008-2011 Daniel James.
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #ifndef BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
7 #define BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
9 #include <boost/config.hpp>
10 #if defined(BOOST_HAS_PRAGMA_ONCE)
14 #include <boost/functional/hash_fwd.hpp>
15 #include <boost/unordered/detail/fwd.hpp>
21 template <class K, class T, class H = boost::hash<K>,
22 class P = std::equal_to<K>,
23 class A = std::allocator<std::pair<const K, T> > >
26 template <class K, class T, class H, class P, class A>
27 inline bool operator==(
28 unordered_map<K, T, H, P, A> const&, unordered_map<K, T, H, P, A> const&);
29 template <class K, class T, class H, class P, class A>
30 inline bool operator!=(
31 unordered_map<K, T, H, P, A> const&, unordered_map<K, T, H, P, A> const&);
32 template <class K, class T, class H, class P, class A>
34 unordered_map<K, T, H, P, A>& m1, unordered_map<K, T, H, P, A>& m2)
35 BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)));
37 template <class K, class T, class H, class P, class A, class Predicate>
38 typename unordered_map<K, T, H, P, A>::size_type erase_if(
39 unordered_map<K, T, H, P, A>& c, Predicate pred);
41 template <class K, class T, class H = boost::hash<K>,
42 class P = std::equal_to<K>,
43 class A = std::allocator<std::pair<const K, T> > >
44 class unordered_multimap;
46 template <class K, class T, class H, class P, class A>
47 inline bool operator==(unordered_multimap<K, T, H, P, A> const&,
48 unordered_multimap<K, T, H, P, A> const&);
49 template <class K, class T, class H, class P, class A>
50 inline bool operator!=(unordered_multimap<K, T, H, P, A> const&,
51 unordered_multimap<K, T, H, P, A> const&);
52 template <class K, class T, class H, class P, class A>
53 inline void swap(unordered_multimap<K, T, H, P, A>& m1,
54 unordered_multimap<K, T, H, P, A>& m2)
55 BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)));
57 template <class K, class T, class H, class P, class A, class Predicate>
58 typename unordered_multimap<K, T, H, P, A>::size_type erase_if(
59 unordered_multimap<K, T, H, P, A>& c, Predicate pred);
61 template <class N, class K, class T, class A> class node_handle_map;
62 template <class N, class K, class T, class A> struct insert_return_type_map;
65 using boost::unordered::unordered_map;
66 using boost::unordered::unordered_multimap;
67 using boost::unordered::swap;
68 using boost::unordered::operator==;
69 using boost::unordered::operator!=;