1
2// Copyright (C) 2008-2011 Daniel James.
3// Copyright (C) 2022 Christian Mazakas
4// Distributed under the Boost Software License, Version 1.0. (See accompanying
5// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7#ifndef BOOST_UNORDERED_SET_FWD_HPP_INCLUDED
8#define BOOST_UNORDERED_SET_FWD_HPP_INCLUDED
9
10#include <boost/config.hpp>
11#if defined(BOOST_HAS_PRAGMA_ONCE)
12#pragma once
13#endif
14
15#include <boost/container_hash/hash_fwd.hpp>
16#include <functional>
17#include <memory>
18
19namespace boost {
20 namespace unordered {
21 template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
22 class A = std::allocator<T> >
23 class unordered_set;
24
25 template <class T, class H, class P, class A>
26 inline bool operator==(
27 unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
28 template <class T, class H, class P, class A>
29 inline bool operator!=(
30 unordered_set<T, H, P, A> const&, unordered_set<T, H, P, A> const&);
31 template <class T, class H, class P, class A>
32 inline void swap(unordered_set<T, H, P, A>& m1,
33 unordered_set<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
34
35 template <class K, class H, class P, class A, class Predicate>
36 typename unordered_set<K, H, P, A>::size_type erase_if(
37 unordered_set<K, H, P, A>& c, Predicate pred);
38
39 template <class T, class H = boost::hash<T>, class P = std::equal_to<T>,
40 class A = std::allocator<T> >
41 class unordered_multiset;
42
43 template <class T, class H, class P, class A>
44 inline bool operator==(unordered_multiset<T, H, P, A> const&,
45 unordered_multiset<T, H, P, A> const&);
46 template <class T, class H, class P, class A>
47 inline bool operator!=(unordered_multiset<T, H, P, A> const&,
48 unordered_multiset<T, H, P, A> const&);
49 template <class T, class H, class P, class A>
50 inline void swap(unordered_multiset<T, H, P, A>& m1,
51 unordered_multiset<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)));
52
53 template <class K, class H, class P, class A, class Predicate>
54 typename unordered_multiset<K, H, P, A>::size_type erase_if(
55 unordered_multiset<K, H, P, A>& c, Predicate pred);
56
57 template <class N, class T, class A> class node_handle_set;
58 template <class Iter, class NodeType> struct insert_return_type_set;
59 } // namespace unordered
60
61 using boost::unordered::unordered_multiset;
62 using boost::unordered::unordered_set;
63} // namespace boost
64
65#endif
66

source code of boost/libs/unordered/include/boost/unordered/unordered_set_fwd.hpp