1*7c82a1ecSDimitry Andric// -*- C++ -*-
2*7c82a1ecSDimitry Andric//===------------------------- unordered_map ------------------------------===//
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_MAP
12*7c82a1ecSDimitry Andric#define _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
13*7c82a1ecSDimitry Andric/*
14*7c82a1ecSDimitry Andric    experimental/unordered_map 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 Key, class T,
23*7c82a1ecSDimitry Andric            class Hash = hash<Key>,
24*7c82a1ecSDimitry Andric            class Pred = equal_to<Key>>
25*7c82a1ecSDimitry Andric  using unordered_map =
26*7c82a1ecSDimitry Andric    std::unordered_map<Key, T, Hash, Pred,
27*7c82a1ecSDimitry Andric                       polymorphic_allocator<pair<const Key,T>>>;
28*7c82a1ecSDimitry Andric
29*7c82a1ecSDimitry Andric  template <class Key, class T,
30*7c82a1ecSDimitry Andric            class Hash = hash<Key>,
31*7c82a1ecSDimitry Andric            class Pred = equal_to<Key>>
32*7c82a1ecSDimitry Andric  using unordered_multimap =
33*7c82a1ecSDimitry Andric    std::unordered_multimap<Key, T, Hash, Pred,
34*7c82a1ecSDimitry Andric                            polymorphic_allocator<pair<const Key,T>>>;
35*7c82a1ecSDimitry Andric
36*7c82a1ecSDimitry Andric} // namespace pmr
37*7c82a1ecSDimitry Andric} // namespace fundamentals_v1
38*7c82a1ecSDimitry Andric} // namespace experimental
39*7c82a1ecSDimitry Andric} // namespace std
40*7c82a1ecSDimitry Andric
41*7c82a1ecSDimitry Andric */
42*7c82a1ecSDimitry Andric
43*7c82a1ecSDimitry Andric#include <experimental/__config>
44*7c82a1ecSDimitry Andric#include <unordered_map>
45*7c82a1ecSDimitry Andric#include <experimental/memory_resource>
46*7c82a1ecSDimitry Andric
47*7c82a1ecSDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
48*7c82a1ecSDimitry Andric#pragma GCC system_header
49*7c82a1ecSDimitry Andric#endif
50*7c82a1ecSDimitry Andric
51*7c82a1ecSDimitry Andric_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
52*7c82a1ecSDimitry Andric
53*7c82a1ecSDimitry Andrictemplate <class _Key, class _Value,
54*7c82a1ecSDimitry Andric          class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>
55*7c82a1ecSDimitry Andricusing unordered_map = _VSTD::unordered_map<_Key, _Value, _Hash, _Pred,
56*7c82a1ecSDimitry Andric                        polymorphic_allocator<pair<const _Key, _Value>>>;
57*7c82a1ecSDimitry Andric
58*7c82a1ecSDimitry Andrictemplate <class _Key, class _Value,
59*7c82a1ecSDimitry Andric          class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>
60*7c82a1ecSDimitry Andricusing unordered_multimap = _VSTD::unordered_multimap<_Key, _Value, _Hash, _Pred,
61*7c82a1ecSDimitry Andric                        polymorphic_allocator<pair<const _Key, _Value>>>;
62*7c82a1ecSDimitry Andric
63*7c82a1ecSDimitry Andric_LIBCPP_END_NAMESPACE_LFTS_PMR
64*7c82a1ecSDimitry Andric
65*7c82a1ecSDimitry Andric#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_MAP */
66