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 <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 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> > > 24 class unordered_map; 25 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> 33 inline void swap( 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))); 36 37 template <class K, class T, class H = boost::hash<K>, 38 class P = std::equal_to<K>, 39 class A = std::allocator<std::pair<const K, T> > > 40 class unordered_multimap; 41 42 template <class K, class T, class H, class P, class A> 43 inline bool operator==(unordered_multimap<K, T, H, P, A> const&, 44 unordered_multimap<K, T, H, P, A> const&); 45 template <class K, class T, class H, class P, class A> 46 inline bool operator!=(unordered_multimap<K, T, H, P, A> const&, 47 unordered_multimap<K, T, H, P, A> const&); 48 template <class K, class T, class H, class P, class A> 49 inline void swap(unordered_multimap<K, T, H, P, A>& m1, 50 unordered_multimap<K, T, H, P, A>& m2) 51 BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2))); 52 53 template <class N, class K, class T, class A> class node_handle_map; 54 template <class N, class K, class T, class A> struct insert_return_type_map; 55 } 56 57 using boost::unordered::unordered_map; 58 using boost::unordered::unordered_multimap; 59 using boost::unordered::swap; 60 using boost::unordered::operator==; 61 using boost::unordered::operator!=; 62 } 63 64 #endif 65