1522a7f95SEric Fiselier// -*- C++ -*-
2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===//
3522a7f95SEric Fiselier//
457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7522a7f95SEric Fiselier//
8522a7f95SEric Fiselier//===----------------------------------------------------------------------===//
9522a7f95SEric Fiselier
10522a7f95SEric Fiselier#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
11522a7f95SEric Fiselier#define _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
12385cc25aSLouis Dionne
13522a7f95SEric Fiselier/*
14522a7f95SEric Fiselier    experimental/unordered_map synopsis
15522a7f95SEric Fiselier
16522a7f95SEric Fiselier// C++1z
17522a7f95SEric Fiseliernamespace std {
18522a7f95SEric Fiseliernamespace experimental {
19522a7f95SEric Fiselierinline namespace fundamentals_v1 {
20522a7f95SEric Fiseliernamespace pmr {
21522a7f95SEric Fiselier
22522a7f95SEric Fiselier  template <class Key, class T,
23522a7f95SEric Fiselier            class Hash = hash<Key>,
24522a7f95SEric Fiselier            class Pred = equal_to<Key>>
25522a7f95SEric Fiselier  using unordered_map =
26522a7f95SEric Fiselier    std::unordered_map<Key, T, Hash, Pred,
27522a7f95SEric Fiselier                       polymorphic_allocator<pair<const Key,T>>>;
28522a7f95SEric Fiselier
29522a7f95SEric Fiselier  template <class Key, class T,
30522a7f95SEric Fiselier            class Hash = hash<Key>,
31522a7f95SEric Fiselier            class Pred = equal_to<Key>>
32522a7f95SEric Fiselier  using unordered_multimap =
33522a7f95SEric Fiselier    std::unordered_multimap<Key, T, Hash, Pred,
34522a7f95SEric Fiselier                            polymorphic_allocator<pair<const Key,T>>>;
35522a7f95SEric Fiselier
36522a7f95SEric Fiselier} // namespace pmr
37522a7f95SEric Fiselier} // namespace fundamentals_v1
38522a7f95SEric Fiselier} // namespace experimental
39522a7f95SEric Fiselier} // namespace std
40522a7f95SEric Fiselier
41522a7f95SEric Fiselier */
42522a7f95SEric Fiselier
43385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler
44522a7f95SEric Fiselier#include <experimental/__config>
45522a7f95SEric Fiselier#include <experimental/memory_resource>
464d81a46fSArthur O'Dwyer#include <unordered_map>
47522a7f95SEric Fiselier
48*de4a57cbSLouis Dionne#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
49*de4a57cbSLouis Dionne#  include <algorithm>
50*de4a57cbSLouis Dionne#  include <array>
51*de4a57cbSLouis Dionne#  include <bit>
52*de4a57cbSLouis Dionne#  include <functional>
53*de4a57cbSLouis Dionne#  include <vector>
54*de4a57cbSLouis Dionne#endif
55*de4a57cbSLouis Dionne
56522a7f95SEric Fiselier#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
57522a7f95SEric Fiselier#  pragma GCC system_header
58522a7f95SEric Fiselier#endif
59522a7f95SEric Fiselier
60522a7f95SEric Fiselier_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
61522a7f95SEric Fiselier
62522a7f95SEric Fiseliertemplate <class _Key, class _Value,
63522a7f95SEric Fiselier          class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>
64522a7f95SEric Fiselierusing unordered_map = _VSTD::unordered_map<_Key, _Value, _Hash, _Pred,
65522a7f95SEric Fiselier                        polymorphic_allocator<pair<const _Key, _Value>>>;
66522a7f95SEric Fiselier
67522a7f95SEric Fiseliertemplate <class _Key, class _Value,
68522a7f95SEric Fiselier          class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>
69522a7f95SEric Fiselierusing unordered_multimap = _VSTD::unordered_multimap<_Key, _Value, _Hash, _Pred,
70522a7f95SEric Fiselier                        polymorphic_allocator<pair<const _Key, _Value>>>;
71522a7f95SEric Fiselier
72522a7f95SEric Fiselier_LIBCPP_END_NAMESPACE_LFTS_PMR
73522a7f95SEric Fiselier
74522a7f95SEric Fiselier#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_MAP */
75