Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-02 08:30:38

0001 
0002 // Copyright (C) 2008-2011 Daniel James.
0003 // Copyright (C) 2022 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_SET_FWD_HPP_INCLUDED
0009 #define BOOST_UNORDERED_SET_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 T, class H = boost::hash<T>, class P = std::equal_to<T>,
0027       class A = std::allocator<T> >
0028     class unordered_set;
0029 
0030     template <class T, class H, class P, class A>
0031     inline bool operator==(
0032       unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
0033     template <class T, class H, class P, class A>
0034     inline bool operator!=(
0035       unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
0036     template <class T, class H, class P, class A>
0037     inline void swap(unordered_set<T, H, P, A>& m1,
0038       unordered_set<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
0039 
0040     template <class K, class H, class P, class A, class Predicate>
0041     typename unordered_set<K, H, P, A>::size_type erase_if(
0042       unordered_set<K, H, P, A>& c, Predicate pred);
0043 
0044     template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
0045       class A = std::allocator<T> >
0046     class unordered_multiset;
0047 
0048     template <class T, class H, class P, class A>
0049     inline bool operator==(unordered_multiset<T, H, P, A> const&,
0050       unordered_multiset<T, H, P, A> const&);
0051     template <class T, class H, class P, class A>
0052     inline bool operator!=(unordered_multiset<T, H, P, A> const&,
0053       unordered_multiset<T, H, P, A> const&);
0054     template <class T, class H, class P, class A>
0055     inline void swap(unordered_multiset<T, H, P, A>& m1,
0056       unordered_multiset<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
0057 
0058     template <class K, class H, class P, class A, class Predicate>
0059     typename unordered_multiset<K, H, P, A>::size_type erase_if(
0060       unordered_multiset<K, H, P, A>& c, Predicate pred);
0061 
0062     template <class N, class T, class A> class node_handle_set;
0063     template <class Iter, class NodeType> struct insert_return_type_set;
0064 
0065 #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
0066     namespace pmr {
0067       template <class T, class H = boost::hash<T>, class P = std::equal_to<T> >
0068       using unordered_set = boost::unordered::unordered_set<T, H, P,
0069         std::pmr::polymorphic_allocator<T> >;
0070 
0071       template <class T, class H = boost::hash<T>, class P = std::equal_to<T> >
0072       using unordered_multiset = boost::unordered::unordered_multiset<T, H, P,
0073         std::pmr::polymorphic_allocator<T> >;
0074     } // namespace pmr
0075 #endif
0076   } // namespace unordered
0077 
0078   using boost::unordered::unordered_multiset;
0079   using boost::unordered::unordered_set;
0080 } // namespace boost
0081 
0082 #endif