|
76 | 76 | #define HAS_STATIC_ASSERT |
77 | 77 | #endif |
78 | 78 |
|
79 | | -// Check C++0x headers (TODO remove when no longer needed below) |
| 79 | +// C++11 features -- that used to be carefully tested for or worked around via CXX0X / TR1 |
80 | 80 | #include <cmath> |
81 | | -#if defined(__INTEL_COMPILER) || (defined(__GNUC__) && !defined(__clang__)) |
82 | | - #define HAS_CXX0X_UNORDERED_MAP |
83 | | - #define HAS_CXX0X_UNORDERED_SET |
84 | | - #define HAS_CXX0X_INITIALIZER_LIST |
85 | | -#elif defined(__clang__) |
86 | | - #if __has_include(<unordered_map>) |
87 | | - #define HAS_CXX0X_UNORDERED_MAP |
88 | | - #endif |
89 | | - #if __has_include(<unordered_set>) |
90 | | - #define HAS_CXX0X_UNORDERED_SET |
91 | | - #endif |
92 | | - #if __has_include(<initializer_list>) |
93 | | - #define HAS_CXX0X_INITIALIZER_LIST |
94 | | - #endif |
95 | | -#endif |
96 | | - |
97 | | -// Check TR1 Headers (TODO remove when no longer needed below) |
98 | | -#if defined(__INTEL_COMPILER) || (defined(__GNUC__) && !defined(__clang__)) |
99 | | - #define HAS_TR1_UNORDERED_MAP |
100 | | - #define HAS_TR1_UNORDERED_SET |
101 | | -#elif defined(__clang__) |
102 | | - #if __has_include(<tr1/unordered_map>) |
103 | | - #define HAS_TR1_UNORDERED_MAP |
104 | | - #endif |
105 | | - #if __has_include(<tr1/unordered_set>) |
106 | | - #define HAS_TR1_UNORDERED_SET |
107 | | - #endif |
108 | | -#endif |
| 81 | +#define HAS_CXX0X_UNORDERED_MAP |
| 82 | +#define HAS_CXX0X_UNORDERED_SET |
| 83 | +#define HAS_CXX0X_INITIALIZER_LIST |
| 84 | + |
| 85 | +// // Check TR1 Headers (TODO remove when no longer needed below) |
| 86 | +// #if defined(__INTEL_COMPILER) || (defined(__GNUC__) && !defined(__clang__)) |
| 87 | +// #define HAS_TR1_UNORDERED_MAP |
| 88 | +// #define HAS_TR1_UNORDERED_SET |
| 89 | +// #elif defined(__clang__) |
| 90 | +// #if __has_include(<tr1/unordered_map>) |
| 91 | +// #define HAS_TR1_UNORDERED_MAP |
| 92 | +// #endif |
| 93 | +// #if __has_include(<tr1/unordered_set>) |
| 94 | +// #define HAS_TR1_UNORDERED_SET |
| 95 | +// #endif |
| 96 | +// #endif |
109 | 97 |
|
110 | | -#if defined(HAS_TR1_UNORDERED_MAP) && defined(HAS_TR1_UNORDERED_SET) |
111 | | -#define HAS_TR1 |
112 | | -#endif |
| 98 | +// #if defined(HAS_TR1_UNORDERED_MAP) && defined(HAS_TR1_UNORDERED_SET) |
| 99 | +// #define HAS_TR1 |
| 100 | +// #endif |
113 | 101 |
|
114 | 102 | // Conditionally include headers |
115 | 103 | // #ifdef HAS_CXX0X_INITIALIZER_LIST |
116 | 104 | #include <initializer_list> |
117 | 105 | // #endif |
118 | 106 |
|
119 | | -// TODO: Simplify further: First case should work generally |
120 | | -#ifdef RCPP_USING_CXX11 |
121 | | - #if defined(HAS_CXX0X_UNORDERED_MAP) |
| 107 | +// // TODO: Simplify further: First case should work generally |
| 108 | +// #ifdef RCPP_USING_CXX11 |
| 109 | +// #if defined(HAS_CXX0X_UNORDERED_MAP) |
122 | 110 | #include <unordered_map> |
123 | 111 | #define RCPP_USING_UNORDERED_MAP |
124 | 112 | #define RCPP_UNORDERED_MAP std::unordered_map |
125 | 113 | // #else |
126 | 114 | // #include <map> |
127 | 115 | // #define RCPP_USING_MAP |
128 | 116 | // #define RCPP_UNORDERED_MAP std::map |
129 | | - #endif |
130 | | - #if defined(HAS_CXX0X_UNORDERED_SET) |
| 117 | + // #endif |
| 118 | + // #if defined(HAS_CXX0X_UNORDERED_SET) |
131 | 119 | #include <unordered_set> |
132 | 120 | #define RCPP_USING_UNORDERED_SET |
133 | 121 | #define RCPP_UNORDERED_SET std::unordered_set |
134 | 122 | // #else |
135 | 123 | // #include <set> |
136 | 124 | // #define RCPP_USING_SET |
137 | 125 | // #define RCPP_UNORDERED_SET std::set |
138 | | - #endif |
139 | | -#else |
140 | | - #if defined(HAS_TR1_UNORDERED_MAP) |
141 | | - #include <tr1/unordered_map> |
142 | | - #define RCPP_USING_TR1_UNORDERED_MAP |
143 | | - #define RCPP_UNORDERED_MAP std::tr1::unordered_map |
144 | | - // #else |
145 | | - // #include <map> |
146 | | - // #define RCPP_USING_MAP |
147 | | - // #define RCPP_UNORDERED_MAP std::map |
148 | | - #endif |
149 | | - #if defined(HAS_TR1_UNORDERED_SET) |
150 | | - #include <tr1/unordered_set> |
151 | | - #define RCPP_USING_TR1_UNORDERED_SET |
152 | | - #define RCPP_UNORDERED_SET std::tr1::unordered_set |
153 | | - // #else |
154 | | - // #include <set> |
155 | | - // #define RCPP_USING_SET |
156 | | - // #define RCPP_UNORDERED_SET std::set |
157 | | - #endif |
158 | | -#endif |
| 126 | + // #endif |
| 127 | +// #else |
| 128 | +// #if defined(HAS_TR1_UNORDERED_MAP) |
| 129 | +// #include <tr1/unordered_map> |
| 130 | +// #define RCPP_USING_TR1_UNORDERED_MAP |
| 131 | +// #define RCPP_UNORDERED_MAP std::tr1::unordered_map |
| 132 | +// // #else |
| 133 | +// // #include <map> |
| 134 | +// // #define RCPP_USING_MAP |
| 135 | +// // #define RCPP_UNORDERED_MAP std::map |
| 136 | +// #endif |
| 137 | +// #if defined(HAS_TR1_UNORDERED_SET) |
| 138 | +// #include <tr1/unordered_set> |
| 139 | +// #define RCPP_USING_TR1_UNORDERED_SET |
| 140 | +// #define RCPP_UNORDERED_SET std::tr1::unordered_set |
| 141 | +// // #else |
| 142 | +// // #include <set> |
| 143 | +// // #define RCPP_USING_SET |
| 144 | +// // #define RCPP_UNORDERED_SET std::set |
| 145 | +// #endif |
| 146 | +// #endif |
159 | 147 |
|
160 | 148 | #ifdef __GNUC__ |
161 | 149 | #define RCPP_HAS_DEMANGLING |
|
0 commit comments