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 <boost/functional/hash_fwd.hpp>
15 #include <boost/unordered/detail/fwd.hpp>
16 #include <functional>
17 #include <memory>
18 
19 namespace boost {
20   namespace unordered {
21     template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
22       class A = std::allocator<T> >
23     class unordered_set;
24 
25     template <class T, class H, class P, class A>
26     inline bool operator==(
27       unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
28     template <class T, class H, class P, class A>
29     inline bool operator!=(
30       unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
31     template <class T, class H, class P, class A>
32     inline void swap(
33       unordered_set<T, H, P, A>& m1, unordered_set<T, H, P, A>& m2)
34       BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)));
35 
36     template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
37       class A = std::allocator<T> >
38     class unordered_multiset;
39 
40     template <class T, class H, class P, class A>
41     inline bool operator==(unordered_multiset<T, H, P, A> const&,
42       unordered_multiset<T, H, P, A> const&);
43     template <class T, class H, class P, class A>
44     inline bool operator!=(unordered_multiset<T, H, P, A> const&,
45       unordered_multiset<T, H, P, A> const&);
46     template <class T, class H, class P, class A>
47     inline void swap(
48       unordered_multiset<T, H, P, A>& m1, unordered_multiset<T, H, P, A>& m2)
49       BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)));
50 
51     template <class N, class T, class A> class node_handle_set;
52     template <class N, class T, class A> struct insert_return_type_set;
53   }
54 
55   using boost::unordered::unordered_set;
56   using boost::unordered::unordered_multiset;
57   using boost::unordered::swap;
58   using boost::unordered::operator==;
59   using boost::unordered::operator!=;
60 }
61 
62 #endif
63