Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
UnorderedMap.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRE_UNORDERED_MAP_H
7#define SKYFIRE_UNORDERED_MAP_H
8
9#include "HashNamespace.h"
10
11#if COMPILER_HAS_CPP11_SUPPORT
12# include <unordered_map>
13#elif COMPILER == COMPILER_INTEL
14# include <ext/hash_map>
15#elif COMPILER == COMPILER_GNU && defined(__clang__) && defined(_LIBCPP_VERSION)
16# include <unordered_map>
17#elif COMPILER == COMPILER_GNU && GCC_VERSION > 40200
18# include <tr1/unordered_map>
19#elif COMPILER == COMPILER_GNU && GCC_VERSION >= 30000
20# include <ext/hash_map>
21#elif COMPILER == COMPILER_MICROSOFT && ((_MSC_VER >= 1500 && _HAS_TR1) || _MSC_VER >= 1700) // VC9.0 SP1 and later
22# include <unordered_map>
23#else
24# include <hash_map>
25#endif
26
27#ifdef _STLPORT_VERSION
28# define UNORDERED_MAP std::hash_map
29# define UNORDERED_MULTIMAP std::hash_multimap
30#elif COMPILER_HAS_CPP11_SUPPORT
31# define UNORDERED_MAP std::unordered_map
32# define UNORDERED_MULTIMAP std::unordered_multimap
33#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1910
34# define UNORDERED_MAP std::unordered_map
35# define UNORDERED_MULTIMAP std::unordered_multimap
36#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1600 // VS100
37# define UNORDERED_MAP std::tr1::unordered_map
38# define UNORDERED_MULTIMAP std::tr1::unordered_multimap
39#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1500 && _HAS_TR1
40# define UNORDERED_MAP std::tr1::unordered_map
41# define UNORDERED_MULTIMAP std::tr1::unordered_multimap
42#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1300
43# define UNORDERED_MAP stdext::hash_map
44# define UNORDERED_MULTIMAP stdext::hash_multimap
45#elif COMPILER == COMPILER_INTEL
46# define UNORDERED_MAP std::hash_map
47# define UNORDERED_MULTIMAP std::hash_multimap
48#elif COMPILER == COMPILER_GNU && defined(__clang__) && defined(_LIBCPP_VERSION)
49# define UNORDERED_MAP std::unordered_map
50# define UNORDERED_MULTIMAP std::unordered_multimap
51#elif COMPILER == COMPILER_GNU && GCC_VERSION > 40200
52# define UNORDERED_MAP std::tr1::unordered_map
53# define UNORDERED_MULTIMAP std::tr1::unordered_multimap
54#elif COMPILER == COMPILER_GNU && GCC_VERSION >= 30000
55# define UNORDERED_MAP __gnu_cxx::hash_map
56# define UNORDERED_MULTIMAP __gnu_cxx::hash_multimap
57#else
58# define UNORDERED_MAP std::hash_map
59# define UNORDERED_MULTIMAP std::hash_multimap
60#endif
61
62#endif