• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 
3 //===----------------------------------------------------------------------===//
4 //
5 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
6 // See https://llvm.org/LICENSE.txt for license information.
7 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 //
9 //===----------------------------------------------------------------------===//
10 
11 // <unordered_set>
12 
13 // Check that std::unordered_set and its iterators can be instantiated with an incomplete
14 // type.
15 
16 #include <unordered_set>
17 
18 #include "test_macros.h"
19 
20 template <class Tp>
21 struct MyHash {
MyHashMyHash22   MyHash() {}
operator ()MyHash23   std::size_t operator()(Tp const&) const {return 42;}
24 };
25 
26 struct A {
27     typedef std::unordered_set<A, MyHash<A> > Map;
28     Map m;
29     Map::iterator it;
30     Map::const_iterator cit;
31     Map::local_iterator lit;
32     Map::const_local_iterator clit;
33 };
34 
operator ==(A const & L,A const & R)35 inline bool operator==(A const& L, A const& R) { return &L == &R; }
36 
main(int,char **)37 int main(int, char**) {
38     A a;
39 
40   return 0;
41 }
42