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