unordered_map_fwd.hpp 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright (C) 2008-2011 Daniel James.
  2. // Copyright (C) 2022-2023 Christian Mazakas
  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. #ifndef BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
  6. #define BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
  7. #include <boost/config.hpp>
  8. #if defined(BOOST_HAS_PRAGMA_ONCE)
  9. #pragma once
  10. #endif
  11. #include <boost/container_hash/hash_fwd.hpp>
  12. #include <functional>
  13. #include <memory>
  14. namespace boost {
  15. namespace unordered {
  16. template <class K, class T, class H = boost::hash<K>,
  17. class P = std::equal_to<K>,
  18. class A = std::allocator<std::pair<const K, T> > >
  19. class unordered_map;
  20. template <class K, class T, class H, class P, class A>
  21. inline bool operator==(
  22. unordered_map<K, T, H, P, A> const&, unordered_map<K, T, H, P, A> const&);
  23. template <class K, class T, class H, class P, class A>
  24. inline bool operator!=(
  25. unordered_map<K, T, H, P, A> const&, unordered_map<K, T, H, P, A> const&);
  26. template <class K, class T, class H, class P, class A>
  27. inline void swap(unordered_map<K, T, H, P, A>& m1,
  28. unordered_map<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
  29. template <class K, class T, class H, class P, class A, class Predicate>
  30. typename unordered_map<K, T, H, P, A>::size_type erase_if(
  31. unordered_map<K, T, H, P, A>& c, Predicate pred);
  32. template <class K, class T, class H = boost::hash<K>,
  33. class P = std::equal_to<K>,
  34. class A = std::allocator<std::pair<const K, T> > >
  35. class unordered_multimap;
  36. template <class K, class T, class H, class P, class A>
  37. inline bool operator==(unordered_multimap<K, T, H, P, A> const&,
  38. unordered_multimap<K, T, H, P, A> const&);
  39. template <class K, class T, class H, class P, class A>
  40. inline bool operator!=(unordered_multimap<K, T, H, P, A> const&,
  41. unordered_multimap<K, T, H, P, A> const&);
  42. template <class K, class T, class H, class P, class A>
  43. inline void swap(unordered_multimap<K, T, H, P, A>& m1,
  44. unordered_multimap<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
  45. template <class K, class T, class H, class P, class A, class Predicate>
  46. typename unordered_multimap<K, T, H, P, A>::size_type erase_if(
  47. unordered_multimap<K, T, H, P, A>& c, Predicate pred);
  48. template <class N, class K, class T, class A> class node_handle_map;
  49. template <class Iter, class NodeType> struct insert_return_type_map;
  50. } // namespace unordered
  51. using boost::unordered::unordered_map;
  52. using boost::unordered::unordered_multimap;
  53. } // namespace boost
  54. #endif