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_SET_FWD_HPP_INCLUDED
7 #define BOOST_UNORDERED_SET_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 T,
24             class H = boost::hash<T>,
25             class P = std::equal_to<T>,
26             class A = std::allocator<T> >
27         class unordered_set;
28 
29         template <class T, class H, class P, class A>
30         inline bool operator==(unordered_set<T, H, P, A> const&,
31             unordered_set<T, H, P, A> const&);
32         template <class T, class H, class P, class A>
33         inline bool operator!=(unordered_set<T, H, P, A> const&,
34             unordered_set<T, H, P, A> const&);
35         template <class T, class H, class P, class A>
36         inline void swap(unordered_set<T, H, P, A> &m1,
37                 unordered_set<T, H, P, A> &m2);
38 
39         template <class T,
40             class H = boost::hash<T>,
41             class P = std::equal_to<T>,
42             class A = std::allocator<T> >
43         class unordered_multiset;
44 
45         template <class T, class H, class P, class A>
46         inline bool operator==(unordered_multiset<T, H, P, A> const&,
47             unordered_multiset<T, H, P, A> const&);
48         template <class T, class H, class P, class A>
49         inline bool operator!=(unordered_multiset<T, H, P, A> const&,
50             unordered_multiset<T, H, P, A> const&);
51         template <class T, class H, class P, class A>
52         inline void swap(unordered_multiset<T, H, P, A> &m1,
53                 unordered_multiset<T, H, P, A> &m2);
54     }
55 
56     using boost::unordered::unordered_set;
57     using boost::unordered::unordered_multiset;
58     using boost::unordered::swap;
59     using boost::unordered::operator==;
60     using boost::unordered::operator!=;
61 }
62 
63 #endif
64