unordered_set_fwd.hpp 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Copyright (C) 2008-2011 Daniel James.
  2. // Copyright (C) 2022 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_SET_FWD_HPP_INCLUDED
  6. #define BOOST_UNORDERED_SET_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 T, class H = boost::hash<T>, class P = std::equal_to<T>,
  17. class A = std::allocator<T> >
  18. class unordered_set;
  19. template <class T, class H, class P, class A>
  20. inline bool operator==(
  21. unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
  22. template <class T, class H, class P, class A>
  23. inline bool operator!=(
  24. unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
  25. template <class T, class H, class P, class A>
  26. inline void swap(unordered_set<T, H, P, A>& m1,
  27. unordered_set<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
  28. template <class K, class H, class P, class A, class Predicate>
  29. typename unordered_set<K, H, P, A>::size_type erase_if(
  30. unordered_set<K, H, P, A>& c, Predicate pred);
  31. template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
  32. class A = std::allocator<T> >
  33. class unordered_multiset;
  34. template <class T, class H, class P, class A>
  35. inline bool operator==(unordered_multiset<T, H, P, A> const&,
  36. unordered_multiset<T, H, P, A> const&);
  37. template <class T, class H, class P, class A>
  38. inline bool operator!=(unordered_multiset<T, H, P, A> const&,
  39. unordered_multiset<T, H, P, A> const&);
  40. template <class T, class H, class P, class A>
  41. inline void swap(unordered_multiset<T, H, P, A>& m1,
  42. unordered_multiset<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
  43. template <class K, class H, class P, class A, class Predicate>
  44. typename unordered_multiset<K, H, P, A>::size_type erase_if(
  45. unordered_multiset<K, H, P, A>& c, Predicate pred);
  46. template <class N, class T, class A> class node_handle_set;
  47. template <class Iter, class NodeType> struct insert_return_type_set;
  48. } // namespace unordered
  49. using boost::unordered::unordered_multiset;
  50. using boost::unordered::unordered_set;
  51. } // namespace boost
  52. #endif