Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-05 08:50:25

0001 
0002 // Copyright (C) 2008-2011 Daniel James.
0003 // Copyright (C) 2022-2023 Christian Mazakas
0004 // Copyright (C) 2024 Braden Ganetsky
0005 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0006 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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     } // namespace pmr
0079 #endif
0080   } // namespace unordered
0081 
0082   using boost::unordered::unordered_map;
0083   using boost::unordered::unordered_multimap;
0084 } // namespace boost
0085 
0086 #endif