COVISE Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
unordered_set.h
Go to the documentation of this file.
1 /* This file is part of COVISE.
2 
3  You can use it under the terms of the GNU Lesser General Public License
4  version 2.1 or later, see lgpl-2.1.txt.
5 
6  * License: LGPL 2+ */
7 
8 #ifndef UNORDERERD_SET_H
9 #define UNORDERERD_SET_H
10 
11 // for checking whether we use libc++
12 #include <ciso646>
13 #if defined(_LIBCPP_VERSION) || (__cplusplus >= 201103L)
14 #include <unordered_set>
15 #include <unordered_map>
16 using std::unordered_set;
17 using std::unordered_map;
18 #define HASH_NAMESPACE std
19 
20 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
21 #include <tr1/unordered_set>
22 #include <tr1/unordered_map>
25 #define HASH_NAMESPACE std
26 #define HASH_NAMESPACE2 tr1
27 
28 #elif((defined(__linux__) && !defined(CO_ia64icc) && !defined(CO_linux)) || defined(__APPLE__) || (defined(__linux__) && defined(CO_ia64icc) && (__GNUC__ >= 4)))
29 #include <ext/hash_map>
30 #include <ext/hash_set>
31 #if (defined(CO_ia64_glibc22) || (defined(CO_ia64icc) && (__GNUC__ < 4)))
32 #define unordered_map std::hash_map
33 #define unordered_set std::hash_set
34 #define HASH_NAMESPACE std
35 #else
36 #define unordered_map __gnu_cxx::hash_map
37 #define unordered_set __gnu_cxx::hash_set
38 #define HASH_NAMESPACE __gnu_cxx
39 #endif
40 #elif defined(_WIN32)
41 #include <hash_map>
42 #define unordered_map stdext::hash_map
43 #include <hash_set>
44 #define unordered_set stdext::hash_set
45 #define HASH_NAMESPACE std
46 #else
47 #include <hash_map>
48 #define unordered_map std::hash_map
49 #include <hash_set>
50 #define unordered_set std::hash_set
51 #define HASH_NAMESPACE stdext
52 #endif
53 
54 #endif
#define unordered_set
Definition: unordered_set.h:50
#define unordered_map
Definition: unordered_set.h:48