dune-pdelab  2.0.0
unordered_map.hh
Go to the documentation of this file.
1 // -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set ts=8 sw=2 et sts=2:
3 
4 #ifndef DUNE_PDELAB_COMMON_UNORDERED_MAP_HH
5 #define DUNE_PDELAB_COMMON_UNORDERED_MAP_HH
6 
11 #include <dune/common/static_assert.hh>
12 
13 // Try to find an unordered_map implementation
14 #ifdef HAVE_UNORDERED_MAP
15 
16 #include <unordered_map>
17 
18 #elif HAVE_TR1_UNORDERED_MAP
19 
20 #include <tr1/unordered_map>
21 
22 #endif
23 
24 namespace Dune {
25  namespace PDELab {
26 
27  // import implementation into Dune::PDELab namespace if there is one.
28 #ifdef HAVE_UNORDERED_MAP
29 
30  using std::unordered_map;
31 
32 #elif HAVE_TR1_UNORDERED_MAP
33 
34  using std::tr1::unordered_map;
35 
36 #else
37 
38  // Dummy implementations to feed the user an explanation of what went wrong here.
39 
40  template<typename Key,
41  typename T,
42  typename Hash = int,
43  typename Pred = int,
44  typename Allocator = int
45  >
47  {
48  dune_static_assert(Dune::AlwaysFalse<Key>::value,"Unable to find implementation for unordered_map.");
49  };
50 
51  template<typename Key,
52  typename T,
53  typename Hash = int,
54  typename Pred = int,
55  typename Allocator = int
56  >
58  {
59  dune_static_assert(Dune::AlwaysFalse<Key>::value,"Unable to find implementation for unordered_multimap.");
60  };
61 
62 #endif
63 
64  } // end namespace PDELab
65 } // end namespace Dune
66 
67 #endif // DUNE_PDELAB_COMMON_UNORDERED_MAP_HH
Definition: unordered_map.hh:57
static const unsigned int value
Definition: gridfunctionspace/tags.hh:175
Definition: unordered_map.hh:46