1 
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)
5 
6 #ifndef BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
7 #define BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
8 
9 #include <boost/config.hpp>
10 #if defined(BOOST_HAS_PRAGMA_ONCE)
11 #pragma once
12 #endif
13 
14 #include <memory>
15 #include <functional>
16 #include <boost/functional/hash_fwd.hpp>
17 #include <boost/unordered/detail/fwd.hpp>
18 
19 namespace boost
20 {
21     namespace unordered
22     {
23         template <class K,
24             class T,
25             class H = boost::hash<K>,
26             class P = std::equal_to<K>,
27             class A = std::allocator<std::pair<const K, T> > >
28         class unordered_map;
29 
30         template <class K, class T, class H, class P, class A>
31         inline bool operator==(unordered_map<K, T, H, P, A> const&,
32             unordered_map<K, T, H, P, A> const&);
33         template <class K, class T, class H, class P, class A>
34         inline bool operator!=(unordered_map<K, T, H, P, A> const&,
35             unordered_map<K, T, H, P, A> const&);
36         template <class K, class T, class H, class P, class A>
37         inline void swap(unordered_map<K, T, H, P, A>&,
38                 unordered_map<K, T, H, P, A>&);
39 
40         template <class K,
41             class T,
42             class H = boost::hash<K>,
43             class P = std::equal_to<K>,
44             class A = std::allocator<std::pair<const K, T> > >
45         class unordered_multimap;
46 
47         template <class K, class T, class H, class P, class A>
48         inline bool operator==(unordered_multimap<K, T, H, P, A> const&,
49             unordered_multimap<K, T, H, P, A> const&);
50         template <class K, class T, class H, class P, class A>
51         inline bool operator!=(unordered_multimap<K, T, H, P, A> const&,
52             unordered_multimap<K, T, H, P, A> const&);
53         template <class K, class T, class H, class P, class A>
54         inline void swap(unordered_multimap<K, T, H, P, A>&,
55                 unordered_multimap<K, T, H, P, A>&);
56     }
57 
58     using boost::unordered::unordered_map;
59     using boost::unordered::unordered_multimap;
60     using boost::unordered::swap;
61     using boost::unordered::operator==;
62     using boost::unordered::operator!=;
63 }
64 
65 #endif
66