1*7c82a1ecSDimitry Andric// -*- C++ -*-
2*7c82a1ecSDimitry Andric//===------------------------- unordered_set ------------------------------===//
3*7c82a1ecSDimitry Andric//
4*7c82a1ecSDimitry Andric//                     The LLVM Compiler Infrastructure
5*7c82a1ecSDimitry Andric//
6*7c82a1ecSDimitry Andric// This file is dual licensed under the MIT and the University of Illinois Open
7*7c82a1ecSDimitry Andric// Source Licenses. See LICENSE.TXT for details.
8*7c82a1ecSDimitry Andric//
9*7c82a1ecSDimitry Andric//===----------------------------------------------------------------------===//
10*7c82a1ecSDimitry Andric
11*7c82a1ecSDimitry Andric#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_SET
12*7c82a1ecSDimitry Andric#define _LIBCPP_EXPERIMENTAL_UNORDERED_SET
13*7c82a1ecSDimitry Andric/*
14*7c82a1ecSDimitry Andric    experimental/unordered_set synopsis
15*7c82a1ecSDimitry Andric
16*7c82a1ecSDimitry Andric// C++1z
17*7c82a1ecSDimitry Andricnamespace std {
18*7c82a1ecSDimitry Andricnamespace experimental {
19*7c82a1ecSDimitry Andricinline namespace fundamentals_v1 {
20*7c82a1ecSDimitry Andricnamespace pmr {
21*7c82a1ecSDimitry Andric
22*7c82a1ecSDimitry Andric  template <class T, class Hash = hash<T>, class Pred = equal_to<T>>
23*7c82a1ecSDimitry Andric  using unordered_set = std::unordered_set<T, Hash, Pred,
24*7c82a1ecSDimitry Andric                       polymorphic_allocator<T>>;
25*7c82a1ecSDimitry Andric
26*7c82a1ecSDimitry Andric  template <class T, class Hash = hash<T>, class Pred = equal_to<T>>
27*7c82a1ecSDimitry Andric  using unordered_multiset = std::unordered_multiset<T, Hash, Pred,
28*7c82a1ecSDimitry Andric                       polymorphic_allocator<T>>;
29*7c82a1ecSDimitry Andric
30*7c82a1ecSDimitry Andric} // namespace pmr
31*7c82a1ecSDimitry Andric} // namespace fundamentals_v1
32*7c82a1ecSDimitry Andric} // namespace experimental
33*7c82a1ecSDimitry Andric} // namespace std
34*7c82a1ecSDimitry Andric
35*7c82a1ecSDimitry Andric */
36*7c82a1ecSDimitry Andric
37*7c82a1ecSDimitry Andric#include <experimental/__config>
38*7c82a1ecSDimitry Andric#include <unordered_set>
39*7c82a1ecSDimitry Andric#include <experimental/memory_resource>
40*7c82a1ecSDimitry Andric
41*7c82a1ecSDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
42*7c82a1ecSDimitry Andric#pragma GCC system_header
43*7c82a1ecSDimitry Andric#endif
44*7c82a1ecSDimitry Andric
45*7c82a1ecSDimitry Andric_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
46*7c82a1ecSDimitry Andric
47*7c82a1ecSDimitry Andrictemplate <class _Value,
48*7c82a1ecSDimitry Andric          class _Hash = hash<_Value>, class _Pred = equal_to<_Value>>
49*7c82a1ecSDimitry Andricusing unordered_set = _VSTD::unordered_set<_Value, _Hash, _Pred,
50*7c82a1ecSDimitry Andric                        polymorphic_allocator<_Value>>;
51*7c82a1ecSDimitry Andric
52*7c82a1ecSDimitry Andrictemplate <class _Value,
53*7c82a1ecSDimitry Andric          class _Hash = hash<_Value>, class _Pred = equal_to<_Value>>
54*7c82a1ecSDimitry Andricusing unordered_multiset = _VSTD::unordered_multiset<_Value, _Hash, _Pred,
55*7c82a1ecSDimitry Andric                        polymorphic_allocator<_Value>>;
56*7c82a1ecSDimitry Andric
57*7c82a1ecSDimitry Andric_LIBCPP_END_NAMESPACE_LFTS_PMR
58*7c82a1ecSDimitry Andric
59*7c82a1ecSDimitry Andric#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_SET */
60