File indexing completed on 2025-07-05 08:50:25
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
0009 #define BOOST_UNORDERED_MAP_FWD_HPP_INCLUDED
0010
0011 #include <boost/config.hpp>
0012 #if defined(BOOST_HAS_PRAGMA_ONCE)
0013 #pragma once
0014 #endif
0015
0016 #include <boost/container_hash/hash_fwd.hpp>
0017 #include <functional>
0018 #include <memory>
0019
0020 #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
0021 #include <memory_resource>
0022 #endif
0023
0024 namespace boost {
0025 namespace unordered {
0026 template <class K, class T, class H = boost::hash<K>,
0027 class P = std::equal_to<K>,
0028 class A = std::allocator<std::pair<const K, T> > >
0029 class unordered_map;
0030
0031 template <class K, class T, class H, class P, class A>
0032 inline bool operator==(
0033 unordered_map<K, T, H, P, A> const&, unordered_map<K, T, H, P, A> const&);
0034 template <class K, class T, class H, class P, class A>
0035 inline bool operator!=(
0036 unordered_map<K, T, H, P, A> const&, unordered_map<K, T, H, P, A> const&);
0037 template <class K, class T, class H, class P, class A>
0038 inline void swap(unordered_map<K, T, H, P, A>& m1,
0039 unordered_map<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
0040
0041 template <class K, class T, class H, class P, class A, class Predicate>
0042 typename unordered_map<K, T, H, P, A>::size_type erase_if(
0043 unordered_map<K, T, H, P, A>& c, Predicate pred);
0044
0045 template <class K, class T, class H = boost::hash<K>,
0046 class P = std::equal_to<K>,
0047 class A = std::allocator<std::pair<const K, T> > >
0048 class unordered_multimap;
0049
0050 template <class K, class T, class H, class P, class A>
0051 inline bool operator==(unordered_multimap<K, T, H, P, A> const&,
0052 unordered_multimap<K, T, H, P, A> const&);
0053 template <class K, class T, class H, class P, class A>
0054 inline bool operator!=(unordered_multimap<K, T, H, P, A> const&,
0055 unordered_multimap<K, T, H, P, A> const&);
0056 template <class K, class T, class H, class P, class A>
0057 inline void swap(unordered_multimap<K, T, H, P, A>& m1,
0058 unordered_multimap<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
0059
0060 template <class K, class T, class H, class P, class A, class Predicate>
0061 typename unordered_multimap<K, T, H, P, A>::size_type erase_if(
0062 unordered_multimap<K, T, H, P, A>& c, Predicate pred);
0063
0064 template <class N, class K, class T, class A> class node_handle_map;
0065 template <class Iter, class NodeType> struct insert_return_type_map;
0066
0067 #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
0068 namespace pmr {
0069 template <class K, class T, class H = boost::hash<K>,
0070 class P = std::equal_to<K> >
0071 using unordered_map = boost::unordered::unordered_map<K, T, H, P,
0072 std::pmr::polymorphic_allocator<std::pair<const K, T> > >;
0073
0074 template <class K, class T, class H = boost::hash<K>,
0075 class P = std::equal_to<K> >
0076 using unordered_multimap = boost::unordered::unordered_multimap<K, T, H,
0077 P, std::pmr::polymorphic_allocator<std::pair<const K, T> > >;
0078 }
0079 #endif
0080 }
0081
0082 using boost::unordered::unordered_map;
0083 using boost::unordered::unordered_multimap;
0084 }
0085
0086 #endif