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