// <unordered_set> -*- C++ -*-
-// Copyright (C) 2007-2021 Free Software Foundation, Inc.
+// Copyright (C) 2007-2024 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#pragma GCC system_header
+#include <bits/requires_hosted.h> // containers
+
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else
-#include <type_traits>
#include <initializer_list>
-#include <bits/allocator.h>
-#include <ext/alloc_traits.h>
-#include <ext/aligned_buffer.h>
-#include <bits/stl_pair.h>
-#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
-#include <bits/functional_hash.h>
-#include <bits/hashtable.h>
#include <bits/unordered_set.h>
#include <bits/range_access.h>
#include <bits/erase_if.h>
# include <debug/unordered_set>
#endif
+#define __glibcxx_want_erase_if
+#define __glibcxx_want_generic_unordered_lookup
+#define __glibcxx_want_node_extract
+#define __glibcxx_want_nonmember_container_access
+#include <bits/version.h>
+
#if __cplusplus >= 201703L
+#include <bits/memory_resource.h>
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
namespace pmr
{
- template<typename _Tp> class polymorphic_allocator;
template<typename _Key, typename _Hash = std::hash<_Key>,
typename _Pred = std::equal_to<_Key>>
using unordered_set
inline typename unordered_set<_Key, _Hash, _CPred, _Alloc>::size_type
erase_if(unordered_set<_Key, _Hash, _CPred, _Alloc>& __cont,
_Predicate __pred)
- { return __detail::__erase_nodes_if(__cont, __pred); }
+ {
+ _GLIBCXX_STD_C::unordered_set<_Key, _Hash, _CPred, _Alloc>&
+ __ucont = __cont;
+ return __detail::__erase_nodes_if(__cont, __ucont, __pred);
+ }
template<typename _Key, typename _Hash, typename _CPred, typename _Alloc,
typename _Predicate>
inline typename unordered_multiset<_Key, _Hash, _CPred, _Alloc>::size_type
erase_if(unordered_multiset<_Key, _Hash, _CPred, _Alloc>& __cont,
_Predicate __pred)
- { return __detail::__erase_nodes_if(__cont, __pred); }
+ {
+ _GLIBCXX_STD_C::unordered_multiset<_Key, _Hash, _CPred, _Alloc>&
+ __ucont = __cont;
+ return __detail::__erase_nodes_if(__cont, __ucont, __pred);
+ }
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // C++20