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