1774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 2774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 3774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier//===----------------------------------------------------------------------===// 4774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// 5774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// The LLVM Compiler Infrastructure 6774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// 7774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// This file is dual licensed under the MIT and the University of Illinois Open 8774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// Source Licenses. See LICENSE.TXT for details. 9774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// 10774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier//===----------------------------------------------------------------------===// 11774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 12774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// <unordered_set> 13774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 1416e2ba19dfffdcf9bba202eb8a27fd79e3d15303Stephan T. Lavavej// Check that std::unordered_multiset and its iterators can be instantiated with an incomplete 15774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier// type. 16774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 17774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier#include <unordered_set> 18774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 19774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiseliertemplate <class Tp> 20774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselierstruct MyHash { 21774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier MyHash() {} 22774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier std::size_t operator()(Tp const&) const {return 42;} 23774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier}; 24774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 25774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselierstruct A { 26774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier typedef std::unordered_multiset<A, MyHash<A> > Map; 27774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier Map m; 28774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier Map::iterator it; 29774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier Map::const_iterator cit; 30774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier Map::local_iterator lit; 31774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier Map::const_local_iterator clit; 32774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier}; 33774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 34774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselierinline bool operator==(A const& L, A const& R) { return &L == &R; } 35774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier 36774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselierint main() { 37774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier A a; 38774c7c5ca8c3d224830bcd9a23c7d9ae52b91bcdEric Fiselier} 39