diff --git a/src/common/unordered.h b/src/common/unordered.h
index c9cbd58..7743eda 100644
--- a/src/common/unordered.h
+++ b/src/common/unordered.h
@@ -46,7 +46,8 @@ struct unordered_map : public __gnu_cxx::hash_map<T, U, H> {};
 template <class T, class H = __gnu_cxx::hash<T> >
 struct unordered_set : public __gnu_cxx::hash_set<T, H> {};
 
-#elif defined(_LIBCPP_VERSION)  // c++11
+#elif (__cplusplus >= 201103L) || defined(_LIBCPP_VERSION) || \
+    (defined(_MSC_VER) && (_MSC_VER >= 1800))  // c++11
 #include <unordered_map>
 #include <unordered_set>
 using std::unordered_map;