+#ifndef HAVE_STD_UNORDERED_MAP
+ #if defined(__has_include) && __has_include(<unordered_map>)
+ #define HAVE_STD_UNORDERED_MAP
+ #endif
+#endif
+
+#ifndef HAVE_TR1_UNORDERED_MAP
+ #if defined(__has_include) && __has_include(<tr1/unordered_map>)
+ #define HAVE_TR1_UNORDERED_MAP
+ #endif
+#endif
+
+#ifndef HAVE_STD_UNORDERED_SET
+ #if defined(__has_include) && __has_include(<unordered_set>)
+ #define HAVE_STD_UNORDERED_SET
+ #endif
+#endif
+
+#ifndef HAVE_TR1_UNORDERED_SET
+ #if defined(__has_include) && __has_include(<tr1/unordered_set>)
+ #define HAVE_TR1_UNORDERED_SET
+ #endif
+#endif
+