1b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//===----------------------------------------------------------------------===//
2b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//
3b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//                     The LLVM Compiler Infrastructure
4b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//
5b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
7b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//
8b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//===----------------------------------------------------------------------===//
9b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
10410ed303baa8973a7418b8f40b2a3b45d4d48a98Eric Fiselier// UNSUPPORTED: c++98, c++03
11410ed303baa8973a7418b8f40b2a3b45d4d48a98Eric Fiselier
12b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant// <unordered_map>
13b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
14b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant// template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,
15b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant//           class Alloc = allocator<pair<const Key, T>>>
16b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant// class unordered_map
17b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
18b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant// mapped_type& operator[](const key_type& k);
19b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
20b7fd0be37076c8fe5a26a5850580426bcd4c0740Eric Fiselier// https://bugs.llvm.org/show_bug.cgi?id=16542
21b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
22b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant#include <unordered_map>
23b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant#include <tuple>
24b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
25b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnantusing namespace std;
26b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
27b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnantstruct my_hash
28b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant{
29b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant    size_t operator()(const tuple<int,int>&) const {return 0;}
30b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant};
31b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant
32b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnantint main()
33b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant{
34b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant    unordered_map<tuple<int,int>, size_t, my_hash> m;
35b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant    m[make_tuple(2,3)]=7;
36b66e1c3f961179f8f5466061a54d6530d1749550Howard Hinnant}
37